Last active
August 29, 2023 15:57
-
-
Save shiffman/8efaacc24625ec436701db221b24e356 to your computer and use it in GitHub Desktop.
Revisions
-
shiffman revised this gist
Oct 1, 2022 . No changes.There are no files selected for viewing
-
shiffman created this gist
Oct 1, 2022 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,72 @@ 10 REM POKE 230,32 : REM page 1 20 REM POKE 230,64 : REM page 2 30 REM POKE 49236,0 : REM display page 1 40 REM POKE 49237,0 : REM display page 2 100 HGR:HGR2 105 W = 140 : H = 90 : SL = 50 110 TH = 0 120 SCR = 0 125 GOSUB 1000 130 GOSUB 5400 135 GOSUB 7000 140 GOSUB 5100 155 TH = TH + 0.05 170 GOTO 130 1000 DIM PTS(8,3) 1005 DIM RZT(8,3) 1006 DIM RYT(8,3) 1007 DIM RXT(8,3) 1020 PTS(0,0) = -1 : PTS(0,1) = -1 : PTS(0,2) = -1 1030 PTS(1,0) = 1 : PTS(1,1) = -1 : PTS(1,2) = -1 1040 PTS(2,0) = 1 : PTS(2,1) = 1 : PTS(2,2) = -1 1050 PTS(3,0) = -1 : PTS(3,1) = 1 : PTS(3,2) = -1 1060 PTS(4,0) = -1 : PTS(4,1) = -1 : PTS(4,2) = 1 1070 PTS(5,0) = 1 : PTS(5,1) = -1 : PTS(5,2) = 1 1080 PTS(6,0) = 1 : PTS(6,1) = 1 : PTS(6,2) = 1 1090 PTS(7,0) = -1 : PTS(7,1) = 1 : PTS(7,2) = 1 1100 RETURN 5100 REM DRAW SQUARE 5110 HCOLOR=3 5120 A = 0 : B = 1 : GOSUB 6000 5130 A = 1 : B = 2 : GOSUB 6000 5140 A = 2 : B = 3 : GOSUB 6000 5150 A = 3 : B = 0 : GOSUB 6000 5160 A = 4 : B = 5 : GOSUB 6000 5170 A = 5 : B = 6 : GOSUB 6000 5180 A = 6 : B = 7 : GOSUB 6000 5190 A = 7 : B = 4 : GOSUB 6000 5200 A = 0 : B = 4 : GOSUB 6000 5210 A = 1 : B = 5 : GOSUB 6000 5220 A = 2 : B = 6 : GOSUB 6000 5230 A = 3 : B = 7 : GOSUB 6000 5240 RETURN 5400 REM SWAP SCREENS 5410 SCR = NOT SCR 5420 POKE 49236+(NOT SCR),0 : REM SHOW OTHER PAGE 5430 POKE 230,32*(SCR+1) : REM SWITCH TO THIS PAGE 5440 CALL 62450 5470 RETURN 6000 X1 = SL * RYX(A,0) + W : Y1 = SL * RYX(A,1) + H 6010 X2 = SL * RYX(B,0) + W : Y2 = SL * RYX(B,1) + H 6020 HPLOT X1,Y1 TO X2,Y2 6030 RETURN 7000 CS = COS(TH) : SN = SIN(TH) 7005 FOR I = 0 TO 8 7010 RZT(I,0) = CS * PTS(I,0) - SN * PTS(I,1) + 0 * PTS(I,2) 7020 RZT(I,1) = SN * PTS(I,0) + CS * PTS(I,1) + 0 * PTS(I,2) 7030 RZT(I,2) = 0 * PTS(I,0) + 0 * PTS(I,1) + 1 * PTS(I,2) 7040 RYT(I,0) = CS * RZT(I,0) + 0 * RZT(I,1) + SN * RZT(I,2) 7050 RYT(I,1) = 0 * RZT(I,0) + 1 * RZT(I,1) + 0 * RZT(I,2) 7060 RYT(I,2) = -SN * RZT(I,0) + 0 * RZT(I,1) + CS * RZT(I,2) 7070 RYX(I,0) = 1 * RYT(I,0) + 0 * RYT(I,1) + 0 * RYT(I,2) 7080 RYX(I,1) = 0 * RYT(I,0) + CS * RYT(I,1) + SN * RYT(I,2) 7090 RYX(I,2) = 0 * RYT(I,0) + SN * RYT(I,1) + CS * RYT(I,2) 7100 NEXT I 7200 RETURN