___ ___ |_ || _| _____ _____ _____ _____ __ _____ _____ _____ | || | | __|| || __ | | || | | || || | | | || | _ |__ || | || -| _ | --|| |__ | | || --|| -| _| || |_ |_||_____||__ _||__|__||_||_____||_____||_____||_____||__|__| |___||___| |__| CYB0RG/ASM 2004.07.07 The Apple ][ will always hold a special place in my memories. It is the machine I first learned to code on back around 1981. In my youth I never did own my own computer. But now the old Apple's have sought me out in need of a home. In recent years I have come to shelter 3 of them. Two ][e's and a ][c. Now I code on them again. I wanted to write something functional, and aesthetically pleasing. Something useful for my Apples to do besides very slowly calculating pi or fibonacci sequences, and warming my home in the winter. A clock. But not just any clock. A square clock. A square clock with hands that actually elongate and contract as they follow the square shape of the clockface. How boss would that be? Well, here it is in all its mode HGR2 Applesoft BASIC bossness. ][.SQR.CLOCK. . . . o . . . Note: Timing is handled by the FOR / NEXT loop on line . | , . 1700 which provides the delay for each tick of the . |/ . second hand. If your clock runs fast or slow, simply o + o tweak this loop until you get it on time. If you need . / . finer granularity, delay loops could also be added on . / . lines 1735 and 1805 to add delays every minute and hour . . . o . . . respectively. 10 REM -- ][.SQR.CLOCK 20 REM -- BY CYB0RG/ASM 30 REM -- COPYRIGHT (C) 2004 40 REM -- WWW.HACKCANADA.COM 50 TEXT 60 HOME 70 DIM A(60,2) : REM MINS/SECS 80 DIM B(60,2) : REM HOURS 100 A(0,0) = 139 : A(0,1) = 6 110 A(1,0) = 149 : A(1,1) = 6 120 A(2,0) = 158 : A(2,1) = 6 130 A(3,0) = 168 : A(3,1) = 6 140 A(4,0) = 179 : A(4,1) = 6 150 A(5,0) = 191 : A(5,1) = 6 160 A(6,0) = 204 : A(6,1) = 6 170 A(7,0) = 220 : A(7,1) = 6 180 A(8,0) = 238 : A(8,1) = 6 190 A(9,0) = 262 : A(9,1) = 6 200 A(10,0) = 273 : A(10,1) = 18 210 A(11,0) = 273 : A(11,1) = 35 220 A(12,0) = 273 : A(12,1) = 51 230 A(13,0) = 273 : A(13,1) = 67 240 A(14,0) = 273 : A(14,1) = 81 250 A(15,0) = 273 : A(15,1) = 95 260 A(16,0) = 273 : A(16,1) = 109 270 A(17,0) = 273 : A(17,1) = 123 280 A(18,0) = 273 : A(18,1) = 138 290 A(19,0) = 273 : A(19,1) = 154 300 A(20,0) = 273 : A(20,1) = 172 310 A(21,0) = 264 : A(21,1) = 185 320 A(22,0) = 240 : A(22,1) = 185 330 A(23,0) = 221 : A(23,1) = 185 340 A(24,0) = 206 : A(24,1) = 185 350 A(25,0) = 192 : A(25,1) = 185 360 A(26,0) = 180 : A(26,1) = 185 370 A(27,0) = 169 : A(27,1) = 185 380 A(28,0) = 159 : A(28,1) = 185 390 A(29,0) = 150 : A(29,1) = 185 400 A(30,0) = 139 : A(30,1) = 185 410 A(31,0) = 129 : A(31,1) = 185 420 A(32,0) = 120 : A(32,1) = 185 430 A(33,0) = 110 : A(33,1) = 185 440 A(34,0) = 99 : A(34,1) = 185 450 A(35,0) = 87 : A(35,1) = 185 460 A(36,0) = 74 : A(36,1) = 185 470 A(37,0) = 58 : A(37,1) = 185 480 A(38,0) = 39 : A(38,1) = 185 490 A(39,0) = 15 : A(39,1) = 185 500 A(40,0) = 6 : A(40,1) = 172 510 A(41,0) = 6 : A(41,1) = 154 520 A(42,0) = 6 : A(42,1) = 138 530 A(43,0) = 6 : A(43,1) = 123 540 A(44,0) = 6 : A(44,1) = 109 550 A(45,0) = 6 : A(45,1) = 95 560 A(46,0) = 6 : A(46,1) = 81 570 A(47,0) = 6 : A(47,1) = 67 580 A(48,0) = 6 : A(48,1) = 51 590 A(49,0) = 6 : A(49,1) = 35 600 A(50,0) = 6 : A(50,1) = 18 610 A(51,0) = 17 : A(51,1) = 6 620 A(52,0) = 41 : A(52,1) = 6 630 A(53,0) = 60 : A(53,1) = 6 640 A(54,0) = 75 : A(54,1) = 6 650 A(55,0) = 88 : A(55,1) = 6 660 A(56,0) = 100 : A(56,1) = 6 670 A(57,0) = 111 : A(57,1) = 6 680 A(58,0) = 121 : A(58,1) = 6 690 A(59,0) = 130 : A(59,1) = 6 700 B(0,0) = 139 : B(0,1) = 32 710 B(1,0) = 146 : B(1,1) = 32 720 B(2,0) = 153 : B(2,1) = 32 730 B(3,0) = 160 : B(3,1) = 32 740 B(4,0) = 167 : B(4,1) = 32 750 B(5,0) = 176 : B(5,1) = 32 760 B(6,0) = 185 : B(6,1) = 32 770 B(7,0) = 196 : B(7,1) = 32 780 B(8,0) = 209 : B(8,1) = 32 790 B(9,0) = 226 : B(9,1) = 32 800 B(10,0) = 231 : B(10,1) = 42 810 B(11,0) = 231 : B(11,1) = 54 820 B(12,0) = 231 : B(12,1) = 65 830 B(13,0) = 232 : B(13,1) = 75 840 B(14,0) = 232 : B(14,1) = 85 850 B(15,0) = 232 : B(15,1) = 95 860 B(16,0) = 232 : B(16,1) = 105 870 B(17,0) = 232 : B(17,1) = 115 880 B(18,0) = 231 : B(18,1) = 125 890 B(19,0) = 231 : B(19,1) = 135 900 B(20,0) = 231 : B(20,1) = 148 910 B(21,0) = 226 : B(21,1) = 158 920 B(22,0) = 210 : B(22,1) = 158 930 B(23,0) = 197 : B(23,1) = 158 940 B(24,0) = 186 : B(24,1) = 158 950 B(25,0) = 176 : B(25,1) = 158 960 B(26,0) = 168 : B(26,1) = 158 970 B(27,0) = 160 : B(27,1) = 158 980 B(28,0) = 153 : B(28,1) = 158 990 B(29,0) = 147 : B(29,1) = 158 1000 B(30,0) = 139 : B(30,1) = 158 1010 B(31,0) = 132 : B(31,1) = 158 1020 B(32,0) = 126 : B(32,1) = 158 1030 B(33,0) = 119 : B(33,1) = 158 1040 B(34,0) = 111 : B(34,1) = 158 1050 B(35,0) = 103 : B(35,1) = 158 1060 B(36,0) = 93 : B(36,1) = 158 1070 B(37,0) = 82 : B(37,1) = 158 1080 B(38,0) = 69 : B(38,1) = 158 1090 B(39,0) = 52 : B(39,1) = 158 1100 B(40,0) = 47 : B(40,1) = 148 1110 B(41,0) = 47 : B(41,1) = 136 1120 B(42,0) = 47 : B(42,1) = 125 1130 B(43,0) = 46 : B(43,1) = 115 1140 B(44,0) = 46 : B(44,1) = 105 1150 B(45,0) = 46 : B(45,1) = 95 1160 B(46,0) = 46 : B(46,1) = 85 1170 B(47,0) = 46 : B(47,1) = 75 1180 B(48,0) = 47 : B(48,1) = 65 1190 B(49,0) = 47 : B(49,1) = 54 1200 B(50,0) = 47 : B(50,1) = 41 1210 B(51,0) = 53 : B(51,1) = 32 1220 B(52,0) = 70 : B(52,1) = 32 1230 B(53,0) = 83 : B(53,1) = 32 1240 B(54,0) = 94 : B(54,1) = 32 1250 B(55,0) = 103 : B(55,1) = 32 1260 B(56,0) = 112 : B(56,1) = 32 1270 B(57,0) = 119 : B(57,1) = 32 1280 B(58,0) = 126 : B(58,1) = 32 1290 B(59,0) = 132 : B(59,1) = 32 1300 INPUT "HOUR: "; H 1310 INPUT "MINUTES: "; M 1320 HGR2 1330 REM CODIFY HOUR 1340 IF H = 12 THEN H = 0 1350 H = INT ((H * 5) + (M / 12)) 1360 REM DRAW CLOCK FACE 1370 HCOLOR=7 1380 HPLOT 149,1 : HPLOT 159,1 : HPLOT 170,1 : HPLOT 181,1 1390 HPLOT 192,0 TO 192,2 : HPLOT 193,0 TO 193,2 : HPLOT 194,0 TO 194,2 1400 HPLOT 207,1 : HPLOT 224,1 : HPLOT 243,1 : HPLOT 268,1 1410 HPLOT 277,14 TO 277,16 : HPLOT 278,14 TO 178,16 : HPLOT 279,14 TO 279,16 1420 HPLOT 278,33 : HPLOT 278,50 : HPLOT 278,66 : HPLOT 278,81 1430 HPLOT 277,94 TO 277,96 : HPLOT 278,94 TO 278,96 : HPLOT 279,94 TO 279,96 1440 HPLOT 278,109 : HPLOT 278,124 : HPLOT 278,140 : HPLOT 278,156 1450 HPLOT 277,172 TO 277,174 : HPLOT 278,172 TO 278,174 : HPLOT 279,172 TO 279,174 1460 HPLOT 270,190 : HPLOT 245,190 : HPLOT 225,190 : HPLOT 209,190 1470 HPLOT 192,189 TO 192,191 : HPLOT 193,189 TO 193,191 : HPLOT 194,189 TO 194,191 1480 HPLOT 182,190 : HPLOT 171,190 : HPLOT 159,190 : HPLOT 150,190 1490 HPLOT 138,189 TO 138,191 : HPLOT 139,189 TO 139,191 : HPLOT 140,189 TO 140,191 1500 HPLOT 129,190 : HPLOT 119,190 : HPLOT 108,190 : HPLOT 97,190 1510 HPLOT 85,189 TO 85,191 : HPLOT 86,189 TO 86,191 : HPLOT 87,189 TO 87,191 1520 HPLOT 71,190 : HPLOT 54,190 : HPLOT 34,190 : HPLOT 9,190 1530 HPLOT 0,172 TO 0,174 : HPLOT 1,172 TO 1,174 : HPLOT 2,172 TO 2,174 1540 HPLOT 1,156 : HPLOT 1,140 : HPLOT 1,124 : HPLOT 1,109 1550 HPLOT 0,94 TO 0,96 : HPLOT 1,94 TO 1,96 : HPLOT 2,94 TO 2,96 1560 HPLOT 1,81 : HPLOT 1,66 : HPLOT 1,50 : HPLOT 1,33 1570 HPLOT 0,14 TO 0,16 : HPLOT 1,14 TO 1,16 : HPLOT 2,14 TO 2,16 1580 HPLOT 11,1 : HPLOT 36,1 : HPLOT 56,1 : HPLOT 72,1 1590 HPLOT 85,0 TO 85,2 : HPLOT 86,0 TO 86,2 : HPLOT 87,0 TO 87,2 1600 HPLOT 98,1 : HPLOT 109,1 : HPLOT 120,1 : HPLOT 130,1 1610 HPLOT 138,0 TO 138,2 : HPLOT 139,0 TO 139,2 : HPLOT 140,0 TO 140,2 1620 REM CENTERPOINT 1630 X = 139 : Y = 95 1640 REM MAINLOOP 1650 FOR S = 0 TO 59 1660 HCOLOR=7 1670 HPLOT X,Y TO A(S,0),A(S,1) 1680 HPLOT X,Y TO A(M,0),A(M,1) 1690 HPLOT X,Y TO B(H,0),B(H,1) 1700 FOR I=0 TO 667: NEXT I 1710 HCOLOR=0 1720 HPLOT X,Y TO A(S,0),A(S,1) 1730 NEXT S 1740 HPLOT X,Y TO A(M,0),A(M,1) 1750 M = M + 1 1760 IF M = 60 THEN M = 0 1770 IF (M<>0) AND (M<>12) AND (M<>24) AND (M<>36) AND (M<>48) THEN GOTO 2000 1780 HPLOT X,Y TO B(H,0),B(H,1) 1790 H = H + 1 1800 IF H = 60 THEN H = 0 2000 GOTO 1640 |