-- stack: in -- format: 10 (HyperCard 2) -- flags: 0x1000 (none) -- protect password hash: 0 -- maximum user level: 5 (scripting) -- window: Rect(x1=64, y1=69, x2=576, y2=411) -- screen: Rect(x1=0, y1=0, x2=640, y2=480) -- card dimensions: w=512 h=342 -- scroll: x=0 y=0 -- background count: 3 -- first background id: 2783 -- card count: 5 -- first card id: 3829 -- list block id: 5319 -- print block id: 0 -- font table block id: 3363 -- style table block id: 3218 -- free block count: 0 -- free size: 0 bytes -- total size: 34624 bytes -- stack block size: 4608 bytes -- created by hypercard version: 0x02018000 -- compacted by hypercard version: 0x02018000 -- modified by hypercard version: 0x02018000 -- opened by hypercard version: 0x02018000 -- patterns[0]: 0x0000000000000000 -- patterns[1]: 0x8000000008000000 -- patterns[2]: 0x8800220088002200 -- patterns[3]: 0x8888222288882222 -- patterns[4]: 0x88AA22AA88AA22AA -- patterns[5]: 0xCCAA33AACCAA33AA -- patterns[6]: 0xEEAABBAAEEAABBAA -- patterns[7]: 0xEEBBBBEEEEBBBBEE -- patterns[8]: 0xFFBBFFEEFFBBFFEE -- patterns[9]: 0xFFBBFFFFFFBBFFFF -- patterns[10]: 0x8010022001084004 -- patterns[11]: 0xFFFFFFFFFFFFFFFF -- patterns[12]: 0x8822882288228822 -- patterns[13]: 0x1122448811224488 -- patterns[14]: 0xC4800C6843023026 -- patterns[15]: 0xB130031BD8C00C8D -- patterns[16]: 0xAA00AA00AA00AA00 -- patterns[17]: 0x8822552288225522 -- patterns[18]: 0x8855225588552255 -- patterns[19]: 0x77DD77DD77DD77DD -- patterns[20]: 0x8000000000000000 -- patterns[21]: 0xAA55AA55AA55AA55 -- patterns[22]: 0x038448300C020101 -- patterns[23]: 0x8244394482010101 -- patterns[24]: 0x8814224188412214 -- patterns[25]: 0x8080413E080814E3 -- patterns[26]: 0x22048C7422179810 -- patterns[27]: 0xBE808808EB088880 -- patterns[28]: 0x25C8328964244C92 -- patterns[29]: 0xA29C41BE2AC914EB -- patterns[30]: 0x40A00000040A0000 -- patterns[31]: 0x8040200002040800 -- patterns[32]: 0xAA00800088008000 -- patterns[33]: 0xFF80808080808080 -- patterns[34]: 0x081C22C180010204 -- patterns[35]: 0xFF808080FF080808 -- patterns[36]: 0xF87422478F172271 -- patterns[37]: 0xBF00BFBFB0B0B0B0 -- patterns[38]: 0xFF7FBE5DA2418000 -- patterns[39]: 0xFAF5FAF5A050A050 -- checksum: 0xDE2E634E ----- HyperTalk script ----- on calculate set cursor to 4 repeat with x = 1 to 6 if card field x is empty then put "0" into card field x end repeat lock screen put the value of cd field "LatDeg" into dlat put the value of cd field "LatMin" into mlat put the value of cd field "LatSec" into slat put the value of cd field "LonDeg" into dlon put the value of cd field "LonMin" into mlon put the value of cd field "LonSec" into slon put (dlat + mlat/60 + slat/3600) into lat -- Calculate latitude put (lat*pi/180) into lat put (dlon + mlon/60 + slon/3600) into lon -- Calculate longitude put (lon*pi/180) into lon put (sin(lat)) into sinlat if hilite of card button 6 is true then repeat with x = 2 to 5 -- Determine time zone chosen if the hilite of button x is true then put (x-1) into tzone end repeat put (60 + tzone*15) into zonelon -- Determine local time zone longitude put (zonelon*pi/180) into zonelon put (zonelon - lon) into deltalon -- Difference in longitudes else put 0 into deltalon put empty into card field 7 doMenu "New Card" hide menuBar set lineSize to 2 set textFont to "Geneva" set textSize to 18 set textStyle to plain choose rectangle tool drag from 56,32 to 356,332 put (atan(0.5)) into thmax repeat with x = -5 to 5 choose line tool put (deltalon + 15*x*pi/180) into timeang -- Time angle of line put (atan(tan(timeang)*sinlat)) into hourang -- Hour angle put (hourang*180/pi) & return after card field 7 of card "Calculate" if (abs(hourang) <= thmax) then put 1 into flag put round(206 + 300*tan(hourang)) into newx put 32 into newy drag from 206,332 to newx,newy -- Draw hour angle else put 0 into flag put round(206 + 150*abs(hourang)/hourang) into newx put round(332 - 150/abs(tan(hourang))) into newy drag from 206,332 to newx,newy -- Draw hour angle end if choose text tool if flag = 1 then set textAlign to center else set textAlign to right if flag = 1 then click at newx,(newy - 14) else click at (newx + abs(hourang)/hourang*23),newy if x = -5 then type "VII" else if x = -4 then type "VIII" else if x = -3 then type "IX" else if x = -2 then type "X" else if x = -1 then type "XI" else if x = 0 then type "XII" else if x = 1 then type "I" else if x = 2 then type "II" else if x = 3 then type "III" else if x = 4 then type "IV" else if x = 5 then click at (newx + abs(hourang)/hourang*10),newy set textAlign to left type "V" end if end repeat click at 410,50 type "Latitude" & return type dlat && mlat && slat & return & return type "Longitude" & return type dlon && mlon && slon & return if hilite of card button 6 of card "Calculate" is true then type "Mean" else type "Apparent" choose browse tool show bg button 3 end calculate on openStack hide message box go to card "Instructions" end openStack