VAR as integer foldRollRight_Amt = 0, foldRollLeft_Amt = 0, foldRollDown_Amt = 0, foldRollUp_Amt = 0 VAR Demo$ '📚📚📚 PutString Library FUNCTION xAdj%(xi%) ' ⎺⎺⎺⎺⎺ xAdj% = 0 IF foldRollRight_Amt > 0 AND foldRollRight_Amt < 8 AND xi% <= foldRollRight_Amt THEN xAdj% = foldRollRight_Amt - xi% IF foldRollLeft_Amt > 0 AND foldRollLeft_Amt < 8 AND xi% > 7 - foldRollLeft_Amt THEN xAdj% = (7-foldRollLeft_Amt) - xi% END FUNCTION FUNCTION yAdj%(yi%) ' ⎺⎺⎺⎺⎺ yAdj% = 0 IF foldRollDown_Amt > 0 AND foldRollDown_Amt < 8 AND yi% <= foldRollDown_Amt THEN yAdj% = foldRollDown_Amt - yi% IF foldRollUp_Amt > 0 AND foldRollUp_Amt < 8 AND yi% > 7 - foldRollUp_Amt THEN yAdj% = (7-foldRollUp_Amt) - yi% END FUNCTION SUB PutString(s$, x%, y%) ' ⎺⎺⎺⎺⎺⎺⎺⎺⎺ for c = 1 to len(s$) sc$ = MID$(s$, c, 1) this$ = _GETCHR$(ASC(sc$)) for yi = 0 to 7 for xi = 0 to 7 IF MID$(this$, (xi + yi*8) + 1, 1) = "X" THEN PSET (x% + xi + (c-1)*8 + xAdj%(xi), y% + yi +yAdj%(yi)) next xi next yi next c END SUB '🟠🟠🟠MAIN PROGRAM screen _newimage(132, 40, 14) ➔again: GOSUB ◈DemoRoll➡ GOSUB ◈DemoRoll⬅ GOSUB ◈DemoRoll➡⬅ GOSUB ◈DemoRoll⬇ GOSUB ◈DemoRoll⬆ GOSUB ◈DemoRoll⬇⬆ GOSUB ◈DemoRoll➡⬅⬇⬆ GOSUB ◈DemoRoll➡⬇ goto ➔again END '🟠🟠🟠GOSUB ROUTINES ◈DemoRoll➡: Demo$ = "Roll Right" for f = 0 to 7 step 1 foldRollRight_Amt = f GOSUB ◈HelloWorld next f for f = 7 to 0 step -1 foldRollRight_Amt = f GOSUB ◈HelloWorld next f RETURN ◈DemoRoll⬅: Demo$ = "Roll Left" for f = 0 to 7 step 1 foldRollLeft_Amt = f GOSUB ◈HelloWorld next f for f = 7 to 0 step -1 foldRollLeft_Amt = f GOSUB ◈HelloWorld next f RETURN ◈DemoRoll➡⬅: Demo$ = "Roll In L+R" for f = 0 to 3 step 1 foldRollRight_Amt = f : foldRollLeft_Amt = f GOSUB ◈HelloWorld : _delay 0.25 next f for f = 3 to 0 step -1 foldRollRight_Amt = f : foldRollLeft_Amt = f GOSUB ◈HelloWorld : _delay 0.25 next f RETURN ◈DemoRoll⬇: Demo$ = "Roll Down" for f = 0 to 7 step 1 foldRollDown_Amt = f GOSUB ◈HelloWorld next f for f = 7 to 0 step -1 foldRollDown_Amt = f GOSUB ◈HelloWorld next f RETURN ◈DemoRoll⬆: Demo$ = "Roll Up" for f = 0 to 7 step 1 foldRollUp_Amt = f GOSUB ◈HelloWorld next f for f = 7 to 0 step -1 foldRollUp_Amt = f GOSUB ◈HelloWorld next f RETURN ◈DemoRoll⬇⬆: Demo$ = "Roll In D+U" for f = 0 to 3 step 1 foldRollDown_Amt = f : foldRollUp_Amt = f GOSUB ◈HelloWorld : _delay 0.25 next f for f = 3 to 0 step -1 foldRollDown_Amt = f : foldRollUp_Amt = f GOSUB ◈HelloWorld : _delay 0.25 next f RETURN ◈DemoRoll➡⬅⬇⬆: Demo$ = "Roll In All" for f = 0 to 3 step 1 foldRollRight_Amt = f : foldRollLeft_Amt = f : foldRollDown_Amt = f : foldRollUp_Amt = f GOSUB ◈HelloWorld : _delay 0.25 next f for f = 3 to 0 step -1 foldRollRight_Amt = f : foldRollLeft_Amt = f : foldRollDown_Amt = f : foldRollUp_Amt = f GOSUB ◈HelloWorld : _delay 0.25 next f Demo$ = "Roll To Corners" for f = 0 to 7 step 1 foldRollRight_Amt = f : foldRollLeft_Amt = f : foldRollDown_Amt = f : foldRollUp_Amt = f GOSUB ◈HelloWorld : _delay 0.25 next f for f = 7 to 0 step -1 foldRollRight_Amt = f : foldRollLeft_Amt = f : foldRollDown_Amt = f : foldRollUp_Amt = f GOSUB ◈HelloWorld : _delay 0.25 next f RETURN ◈DemoRoll➡⬇: Demo$ = "Roll R+D" for f = 0 to 7 step 1 foldRollRight_Amt = f : foldRollDown_Amt = f GOSUB ◈HelloWorld : _delay 0.25 next f for f = 7 to 0 step -1 foldRollRight_Amt = f : foldRollDown_Amt = f GOSUB ◈HelloWorld : _delay 0.25 next f RETURN ◈HelloWorld: CLS COLOR 38 LOCATE 4,0 : PRINT Demo$; COLOR 54 PutString("H", 3, 3) PutString("E", 11, 4) PutString("L", 19, 5) PutString("L", 27, 6) PutString("O", 35, 7) PutString("W", 51, 8) PutString("O", 59, 7) PutString("R", 67, 6) PutString("L", 75, 5) PutString("D", 83, 4) PutString("!", 91, 3) _DELAY 0.5 RETURN