The numbers in the program flow chart (right) refer to the line numbers in the program. The program can be set up to shift or roll, or shift and roll. The program is loaded into locations 78 through F7. (Try using the program for the starship shown in Table II of the Pixie article.) Only the data loaded into 78 through F7 is shifted, but the entire area from 00 through FF is rolled.
Loading the program exactly as it is listed here will enable the shift routine only. Loading a 38 (SKP instruction) in location 5F (line 111) will enable both shift and roll routines. Loading 30 61 (BR ROLL) in locations 3C and 3D (line 82) will enable only the roll routine.
After loading and running the program, animation of the display will begin after any nonzero byte is loaded via the INPUT switches and operation of the INPUT pushbutton. By varying the INPUT bit pattern, you can control the speed of the animation.
If you have never seen a stack in "motion" when a program is running, take a look at displayed location 13. Then vary the speed.
3F F878 84 LDI A.0(BEGSFT)
41 A9 85 PLO R9 ..R9=FIRST LINE
42 F810 86 LDI 16 ..TO SHIFT.
44 A6 87 PLO R6 ..SHIFT 16 LINES.
45 99 88 MXTLNE:GHI R9
46 BA 89 PHI RA ..SAVE ADDRESS OF 1st
47 89 90 GLO R9 ..ON LINE IN RA
48 AA 91 PLO RA
49 F807 92 LDI 7 ..R7=BYTES TO SHIFT-1.
4B A7 93 PLO R7
4C 09 94 LDN R9
4D B8 95 PHI R8 ..SAVE 1ST BYTE ON
4E 76 96 SHRC ..LINE IN R8.1
4F 19 97 MXTBYT:INC R9 ..POINT R9 TO NEXT BYTE.
50 09 98 LDN R9 ..LOAD NEXT BYTE.
51 76 99 SHRC ..SHIFT RIGHT.
52 59 100 STR R9 ..STORE BYTE
53 27 101 DEC R7
54 87 102 GLO R7 ..CHECK IF ALL BYTES
55 3A4F 103 BNZ MXTBYT ..SHIFTED.
57 98 104 GHI R8 ..PUT BIT 0 of 8TH
58 76 105 SHRC ..BYT ON BIT 7 OF
59 5A 106 STR RA ..1ST BYT ON LINE.
5A 19 107 INC R9 ..R9=BYTE 0 NXT LINE.
5B 26 108 DEC R6
5C 86 109 GLO R6 ..CHECK IF 16 LINES
5D 3A45 110 BNZ NXTLNE ..SHIFTED.
5F 3033 111 BR SFREAD ..SKP 38 ROLL AND SHIFT.
61 84 112 ROLL:GLO R4 ..INCREMENT R4 ONE LINE
62 FC08 113 ADI 8 ..ROLL SCREEN UP.
64 A4 114 PLO R4
65 94 115 GHI R4 ..CHANGE LNNO 116 TO
66 F800 116 LDI 00 ..ADCI 0 7C00 IF MORE
68 B4 117 PHI R4 ..THAN 256 BYTES.
69 3233 118 BZ SFREAD
6B 84 119 GLO R4
6C B4 120 PHI R4
6D 3033 121 BR SFREAD
6F 00 122 DC #00
123 ..ENTER IMAGE TO BE SHIFTED IN LOCATIONS
124 ..X'78' - x'F7'.
125 END