home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / mac / hypercrd / hc2_x / sundial.sit / Sundial / stack.txt < prev    next >
Text File  |  1991-04-15  |  5KB  |  157 lines

  1. -- stack: in
  2. -- format: 10 (HyperCard 2)
  3. -- flags: 0x1000 (none)
  4. -- protect password hash: 0
  5. -- maximum user level: 5 (scripting)
  6. -- window: Rect(x1=64, y1=69, x2=576, y2=411)
  7. -- screen: Rect(x1=0, y1=0, x2=640, y2=480)
  8. -- card dimensions: w=512 h=342
  9. -- scroll: x=0 y=0
  10. -- background count: 3
  11. -- first background id: 2783
  12. -- card count: 5
  13. -- first card id: 3829
  14. -- list block id: 5319
  15. -- print block id: 0
  16. -- font table block id: 3363
  17. -- style table block id: 3218
  18. -- free block count: 0
  19. -- free size: 0 bytes
  20. -- total size: 34624 bytes
  21. -- stack block size: 4608 bytes
  22. -- created by hypercard version: 0x02018000
  23. -- compacted by hypercard version: 0x02018000
  24. -- modified by hypercard version: 0x02018000
  25. -- opened by hypercard version: 0x02018000
  26. -- patterns[0]: 0x0000000000000000
  27. -- patterns[1]: 0x8000000008000000
  28. -- patterns[2]: 0x8800220088002200
  29. -- patterns[3]: 0x8888222288882222
  30. -- patterns[4]: 0x88AA22AA88AA22AA
  31. -- patterns[5]: 0xCCAA33AACCAA33AA
  32. -- patterns[6]: 0xEEAABBAAEEAABBAA
  33. -- patterns[7]: 0xEEBBBBEEEEBBBBEE
  34. -- patterns[8]: 0xFFBBFFEEFFBBFFEE
  35. -- patterns[9]: 0xFFBBFFFFFFBBFFFF
  36. -- patterns[10]: 0x8010022001084004
  37. -- patterns[11]: 0xFFFFFFFFFFFFFFFF
  38. -- patterns[12]: 0x8822882288228822
  39. -- patterns[13]: 0x1122448811224488
  40. -- patterns[14]: 0xC4800C6843023026
  41. -- patterns[15]: 0xB130031BD8C00C8D
  42. -- patterns[16]: 0xAA00AA00AA00AA00
  43. -- patterns[17]: 0x8822552288225522
  44. -- patterns[18]: 0x8855225588552255
  45. -- patterns[19]: 0x77DD77DD77DD77DD
  46. -- patterns[20]: 0x8000000000000000
  47. -- patterns[21]: 0xAA55AA55AA55AA55
  48. -- patterns[22]: 0x038448300C020101
  49. -- patterns[23]: 0x8244394482010101
  50. -- patterns[24]: 0x8814224188412214
  51. -- patterns[25]: 0x8080413E080814E3
  52. -- patterns[26]: 0x22048C7422179810
  53. -- patterns[27]: 0xBE808808EB088880
  54. -- patterns[28]: 0x25C8328964244C92
  55. -- patterns[29]: 0xA29C41BE2AC914EB
  56. -- patterns[30]: 0x40A00000040A0000
  57. -- patterns[31]: 0x8040200002040800
  58. -- patterns[32]: 0xAA00800088008000
  59. -- patterns[33]: 0xFF80808080808080
  60. -- patterns[34]: 0x081C22C180010204
  61. -- patterns[35]: 0xFF808080FF080808
  62. -- patterns[36]: 0xF87422478F172271
  63. -- patterns[37]: 0xBF00BFBFB0B0B0B0
  64. -- patterns[38]: 0xFF7FBE5DA2418000
  65. -- patterns[39]: 0xFAF5FAF5A050A050
  66. -- checksum: 0xDE2E634E
  67. ----- HyperTalk script -----
  68. on calculate
  69.   set cursor to 4
  70.   repeat with x = 1 to 6
  71.     if card field x is empty then put "0" into card field x
  72.   end repeat
  73.   lock screen
  74.   put the value of cd field "LatDeg" into dlat
  75.   put the value of cd field "LatMin" into mlat
  76.   put the value of cd field "LatSec" into slat
  77.   put the value of cd field "LonDeg" into dlon
  78.   put the value of cd field "LonMin" into mlon
  79.   put the value of cd field "LonSec" into slon
  80.   put (dlat + mlat/60 + slat/3600) into lat    -- Calculate latitude
  81.   put (lat*pi/180) into lat
  82.   put (dlon + mlon/60 + slon/3600) into lon    -- Calculate longitude
  83.   put (lon*pi/180) into lon
  84.   put (sin(lat)) into sinlat
  85.  
  86.   if hilite of card button 6 is true then
  87.     repeat with x = 2 to 5   -- Determine time zone chosen
  88.       if the hilite of button x is true then put (x-1) into tzone
  89.     end repeat
  90.     put (60 + tzone*15) into zonelon   -- Determine local time zone longitude
  91.     put (zonelon*pi/180) into zonelon
  92.     put (zonelon - lon) into deltalon   -- Difference in longitudes
  93.   else put 0 into deltalon
  94.   put empty into card field 7
  95.   doMenu "New Card"
  96.   hide menuBar
  97.   set lineSize to 2
  98.   set textFont to "Geneva"
  99.   set textSize to 18
  100.   set textStyle to plain
  101.   choose rectangle tool
  102.   drag from 56,32 to 356,332
  103.   put (atan(0.5)) into thmax
  104.  
  105.   repeat with x = -5 to 5
  106.     choose line tool
  107.     put (deltalon + 15*x*pi/180) into timeang   -- Time angle of line
  108.     put (atan(tan(timeang)*sinlat)) into hourang   -- Hour angle
  109.     put (hourang*180/pi) & return after card field 7 of card "Calculate"
  110.     if (abs(hourang) <= thmax) then
  111.       put 1 into flag
  112.       put round(206 + 300*tan(hourang)) into newx
  113.       put 32 into newy
  114.       drag from 206,332 to newx,newy   -- Draw hour angle
  115.     else
  116.       put 0 into flag
  117.       put round(206 + 150*abs(hourang)/hourang) into newx
  118.       put round(332 - 150/abs(tan(hourang))) into newy
  119.       drag from 206,332 to newx,newy   -- Draw hour angle
  120.     end if
  121.     choose text tool
  122.     if flag = 1 then set textAlign to center
  123.     else set textAlign to right
  124.     if flag = 1 then click at newx,(newy - 14)
  125.     else click at (newx + abs(hourang)/hourang*23),newy
  126.     if x = -5 then type "VII"
  127.     else if x = -4 then type "VIII"
  128.     else if x = -3 then type "IX"
  129.     else if x = -2 then type "X"
  130.     else if x = -1 then type "XI"
  131.     else if x = 0 then type "XII"
  132.     else if x = 1 then type "I"
  133.     else if x = 2 then type "II"
  134.     else if x = 3 then type "III"
  135.     else if x = 4 then type "IV"
  136.     else if x = 5 then
  137.       click at (newx + abs(hourang)/hourang*10),newy
  138.       set textAlign to left
  139.       type "V"
  140.     end if
  141.   end repeat
  142.   click at 410,50
  143.   type "Latitude" & return
  144.   type dlat && mlat && slat & return & return
  145.   type "Longitude" & return
  146.   type dlon && mlon && slon & return
  147.   if hilite of card button 6 of card "Calculate" is true then type "Mean"
  148.   else type "Apparent"
  149.   choose browse tool
  150.   show bg button 3
  151. end calculate
  152.  
  153. on openStack
  154.   hide message box
  155.   go to card "Instructions"
  156. end openStack
  157.