___  ___
    |_  ||  _|    _____  _____  _____     _____  __     _____  _____  _____
      | || |     |   __||     || __  |   |     ||  |   |     ||     ||  |  |
      | || |   _ |__   ||  |  ||    -| _ |   --||  |__ |  |  ||   --||    -|
     _| || |_ |_||_____||__  _||__|__||_||_____||_____||_____||_____||__|__|
    |___||___|             |__|
                                                                 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

WWW.HACKCANADA.COM