Category : BASIC Source Code
Archive   : GEODEM.ZIP
Filename : CSC5.BAS

 
Output of file : CSC5.BAS contained in archive : GEODEM.ZIP
ü
þk‰5;ƒaf“~›•¡ø|.kkÍqÿü
> NåÖÀ­.ïZ'yk 
CircInterSect}a1wa2Äb1»b2Ar1Þr2 €x19€x2±€y1§€y2›Sigma1 Sigma2kPartAPartBcPartCê PlaneRotate6€X³€YNTheta¶Xprime‡Yprime$CenterOfRotationUxec’yecGzecØP1£P2\P3ÒcgxÌcgyÆcgzäcçdÜerPhi…dfArcCos\Gamma™dfArcSin¨Beta-dfPiêb®fŒxcºyccðzcWyc¹o14o2co3Àr3¢q1hq2rq3b SolidRotaterCenterofvRotation@TempXÛTempY[TempZÎRotateÞ
coordinateê aboutº€ZIinithe¿Plane}sfAlpha‹
TempXprimeè
TempYprime¬Alpha$RadiusTheta0ØTheta1ÊTempX0ÔTempY0°TempZ0ATemp0X÷ TempX0prime TempY0prime TempX1prime¨ TempY1primeOTempZ1šTheta13FineÑtiltòBeYTempX1TempY1råTempX2ÑTempX3‘TrashRq11ÄbyJDivisorÇByValp1îpdýPrinted*€np8LenPyUnitP1MUnitP2¯UnitP3ýdebubj TempXoPrime
 TempX0prime2 TempY0prime2- TempX1prime2= TempY1prime2Æ TempZ0prime2€i`PitchAfind§newM
TempZ0prime2 PointTransForm¥IstarDot endsub€sfPi LetterA)€PxStar€PyStar€PzStaré
LetterAfbXoldú
LetterAfbYoldL
LetterAfbZoldÕ
€iErase»€ObjNum?ViewPicU
iColor4Bit€XView. LetterB[ LetterBXoldj LetterBYold„ LetterBZold LetterCLetterDæ LetterE¥ LetterFý
LetterGv
LetterH LetterI\
LetterJ;
LetterK–LetterLLetterM‚LetterN¸
LetterOP LetterP•
LetterQE
LetterR LetterSk
LetterTy
LetterU‡
LetterV LetterWÈ LetterXŸ
LetterY* LetterZ LetterCXoldŸ LetterCYold® LetterCZold½ LetterDXoldÌ LetterDYoldÛ LetterDZoldê LetterEXoldù LetterEYold LetterEZold LetterFXold& LetterFYold5 LetterFZoldD LetterGXoldS LetterGYoldb LetterGZolds
LetterIfbXold„
LetterIfbYold•
LetterIfbZold¤ LetterJXold³ LetterJYold LetterJZoldÑ LetterKXoldà LetterKYoldï LetterKZoldþ LetterLXold
 LetterLYold LetterLZold+ LetterMXold: LetterMYoldI LetterMZoldX LetterNXoldg LetterNYoldv LetterNZold… LetterOXold” LetterOYold£ LetterOZold² LetterPXoldÁ LetterPYoldÐ LetterPZoldà LetterSfXoldð LetterSfYold LetterSfZold LetterTXold LetterTYold- LetterTZold< LetterWXoldK LetterWYoldZ LetterWZoldi LetterYXoldx LetterYYold‡ LetterYZold– LetterQXold¥ LetterQYold´ LetterQZoldà LetterRXoldÒ LetterRYoldá LetterRZoldð LetterUXoldÿ LetterUYold
LetterUZold
LetterXXold,
LetterXYoldò
LetterXZoldG CrossWordCubesÈ
€ iNumObjects! € iObjectType €
iLocationX©
€
iLocationYd €
iLocationZ €iColor5 €sfSize9
iPuzzleMode& iCurrentCell iNumCellsß
iLevelZ @BorderBoxRaisedÖ €Source1T
€Source2!
drawwidth»€Bleft LeftŒ€BTop„
top¸ €BWideõ width€BHighÞheightl CoSine-
Sine
@BorderBoxRecessed
BoxEraseÊ
@PicBorderBoxRecessedö @PlaceAllObjects mousepointer: €
sfDSquaredQ € sfViewPointXm € sfViewPointY‰ € sfViewPointZB € iObjOrder¢
€j}
€Temp1o
€Temp2|€NewX[€NewYI€NewZ¥ € CenterXstar^ € sfRPointX´ € sfWinPointXz € sfRPointYÁ € sfWinPointY– € sfRPointZÎ € sfWinPointZÛ € CenterYstarf
€ sfSPointX]
€ sfSPointYð
€ sfSPointZ
€ CenterZstar7€iInView¾
€ iInViewPrevŠ
@ PlaceObject€
iNumPoints€iObjectX€iObjectY€iObjectZ×
@ MapToWindow–
€PzOld¨
€PxOld®
€PyOld?€iPz€iPx&€iPyœ
€Z1€Z2€Z3ä
€Z4€x3€y3´
€x4€y4€PointsPointAPI FillColor ForeColoråcurrentxTcurrenty ScaleModeÉ
ScaleWidth2 ScaleHeightvScaleTop² scaleleft€ResultgPolygonhDCX€PointNum ThreeDXFormWWWD©ViewPX ViewPYViewPZWinPXWinPYWinPZ×RPXÐRPYRPZMSPXBSPYûSPZPlaceObjectHandlerPlaceObjectResume*@SpinCube€
OrbitAngle€ SpinAngleaStartupvisibleSCCheckvalue€iSCNum”v3D CyberSpace viewer from...vIvory Tower SoftwarevRichard WagnervCIS 76427,2611v&Copyright 1992, all rights reserved.vUYou may use this VB source code in your programs if you include attribution in yourvQstartup and "about" screens in the form: "Portions of this program copyright byyv.Ivory Tower Software, used with permission." ÿÿÿÿÿÿÿÿBorderBoxRaised0Xß
ò
€ý
€ä ý
  ò
 å÷   ò
. å÷ &  ò
> å£ 5  ò
P å£ G  ý
ef  & ` 5 äcèÿÿÿ… ý
efä G cä… ý
ef 5 ùäcä… ý
efä G ùcèÿÿÿ…9 ÿÿÿÿÿÿÿÿBorderBoxRecessed0þXl ò
€ý
€ä ý
  ò
 å÷   ò
. å÷ &  ò
> å£ 5  ò
P å£ G  ý
ef  & ` 5 äcä… ý
efä G cèÿÿÿ… ý
ef 5 ùäcèÿÿÿ… ý
efä G ùcä…9 ÿÿÿÿÿÿÿÿ
PicBorderBoxRecessed0þX ò
€ý
€ä ý
  ò
 å÷   ò
. å÷ &  ò
> å£ 5  ò
P å£ G  ý
ef  & ` 5 äcä… ý
efä G cèÿÿÿ… ý
ef 5 ùäcèÿÿÿ… ý
efä G ùcä…9 ÿÿÿÿÿÿÿÿ
PlaceAllObjects0&lX¥ vMAll the defined objects get placed in cyberspace, with more distant objectscvgetting placed first.tå 8¸  Mä M
>ÿÿâ v<Find distances squared of objects' centers from ViewPoint: vTThere is no need to take the square root, because it's the distance order we want. Mk
Ö ÷îäö My
æ ÷îäö£ M‡
ö ÷îäö£ MÈ v Initialize object order array: M M  MNÿÿv*Sort objects by their distances squared:v
Bubble sorts Mä M
ä÷>ÿÿ  Mä£ M
>ÿÿø MÈ  È ãIî MÈ   È MÈ   È M !   M !   8  Nÿÿ MNÿÿ Mä M
>ÿÿJv>See if center of object is outside view pyramid by 500 CLUs:v1Objects completely out of view don't get drawn.rvHThis means that the biggest object in cyberspace cannot be bigger thanv1000 CLUs in any dimension.  Mk
Ö ÷ *  My
æ ÷ 2  M‡
ö ÷ :  Q ^ ÷î * ðåô¥ m z ÷î 2 ðåô¥£ ‰ – ÷î : ðåô¥£ B  ´ ^ ÷î * ðåô¥ Á z ÷î 2 ðåô¥£ Î – ÷î : ðåô¥£ ¥  Ö ^ ÷î * ðåè¥ æ z ÷î 2 ðå襣 ö – ÷î : ðå襣 Û äù Mê  B åè Û ÷îä¥ßI¢ä Mê 8 B Û åè÷îä¥ãIÖä Mê 8 ¥ åè Û ÷îä¥ßI
ä Mê 8 ¥ Û åè÷îä¥ãI>ä Mê 8 MNÿÿ Mä M
>ÿÿävErasev3Objects are explicitly erased for smooth drawing.w M õ EØ M äù$
 MNÿÿ Mä M
>ÿÿXvPlace M ê E6 M ä$
 Mê Mõ  MNÿÿä 8¸ 9 ÿÿÿÿÿÿÿÿP PlaceObject0”+-X
€ €vCEach object is placed separately after erasing its old placement.nv<Cls is not used because that makes a flickering view port.Oå ôIˆv0(Placing objects, so calculate transformations: Mä \

>ÿÿ€v%5Do it for each point in the object:nvUPoint is referenced to iLocationX, Y, Z of object center relative to the viewpoint:f \
M!
Ÿ
ð k
£ Ö ÷ *  \
M-
Ÿ
ð y
£ æ ÷ 2  \
M9
Ÿ
ð ‡
£ ö ÷ :  M * 2 : $E
 MNÿÿ8v-Each object is drawn depending on its type: \
VÖä&å,&vWireframe Cube I²
v)Erase previous rendering of the object: v.(doing CLS makes a jumpy flickering picture) äT
äã äT
äãõIL ä]
¨åôã äf
¨åôã¤î ä]
¨åôã äf
¨åôã¤îõIH 8ef ä]
äf
` ä]
äf
bäʅ88 äT
äã ä T
äãõI& ä]
¨åôã äf
¨åôã¤î ä ]
¨åôã ä f
¨åôã¤îõI" 8ef ä]
äf
` ä ]
ä f
bäʅ88 ä T
äã äT
äãõI ä ]
¨åôã ä f
¨åôã¤î ä]
¨åôã äf
¨åôã¤îõIü 8ef ä ]
ä f
` ä]
äf
bäʅ88 äT
äã äT
äãõIÚ ä]
¨åôã äf
¨åôã¤î ä]
¨åôã äf
¨åôã¤îõIÖ 8ef ä]
äf
` ä]
äf
bäʅ88 äT
äã äT
äãõI´ ä]
¨åôã äf
¨åôã¤î ä]
¨åôã äf
¨åôã¤îõI° 8ef ä]
äf
` ä]
äf
bäʅ88 äT
äã äT
äãõIŽ ä]
¨åôã äf
¨åôã¤î ä]
¨åôã äf
¨åôã¤îõIŠ 8ef ä]
äf
` ä]
äf
bäʅ88 äT
äã ä T
äãõIh  ä]
¨åôã äf
¨åôã¤î ä ]
¨åôã ä f
¨åôã¤îõId 8ef ä]
äf
` ä ]
ä f
bäʅ88 ä T
äã äT
äãõIB
 ä ]
¨åôã ä f
¨åôã¤î ä]
¨åôã äf
¨åôã¤îõI>
8ef ä ]
ä f
` ä]
äf
bäʅ88 äT
äã äT
äãõI  ä]
¨åôã äf
¨åôã¤î ä]
¨åôã äf
¨åôã¤îõI 8ef ä]
äf
` ä]
äf
bäʅ88 äT
äã äT
äãõIö  ä]
¨åôã äf
¨åôã¤î ä]
¨åôã äf
¨åôã¤îõIò 8ef ä]
äf
` ä]
äf
bäʅ88 ä T
äã äT
äãõIÐ  ä ]
¨åôã ä f
¨åôã¤î ä]
¨åôã äf
¨åôã¤îõIÌ 8ef ä ]
ä f
` ä]
äf
bäʅ88 äT
äã ä T
äãõIª
 ä]
¨åôã äf
¨åôã¤î ä ]
¨åôã ä f
¨åôã¤îõI¦
8ef ä]
äf
` ä ]
ä f
bäʅ882ðvDraw object:äo
äãäo
äãõI€äv
¨åôãä}
¨åôã¤îäv
¨åôãä}
¨åôã¤îõI| 8efäv
ä}
`äv
ä}
b •
ʅ88äo
äãä o
äãõI:äv
¨åôãä}
¨åôã¤îä v
¨åôãä }
¨åôã¤îõI6 8efäv
ä}
`ä v
ä }
b •
ʅ88ä o
äãäo
äãõIôä v
¨åôãä }
¨åôã¤îäv
¨åôãä}
¨åôã¤îõIð 8efä v
ä }
`äv
ä}
b •
ʅ88äo
äãäo
äãõI®äv
¨åôãä}
¨åôã¤îäv
¨åôãä}
¨åôã¤îõIª 8efäv
ä}
`äv
ä}
b •
ʅ88äo
äãäo
äãõIhäv
¨åôãä}
¨åôã¤îäv
¨åôãä}
¨åôã¤îõId 8efäv
ä}
`äv
ä}
b •
ʅ88äo
äãäo
äãõI"äv
¨åôãä}
¨åôã¤îäv
¨åôãä}
¨åôã¤îõI 8efäv
ä}
`äv
ä}
b •
ʅ88äo
äãä o
äãõIÜäv
¨åôãä}
¨åôã¤îä v
¨åôãä }
¨åôã¤îõIØ 8efäv
ä}
`ä v
ä }
b •
ʅ88ä o
äãäo
äãõI–ä v
¨åôãä }
¨åôã¤îäv
¨åôãä}
¨åôã¤îõI’ 8efä v
ä }
`äv
ä}
b •
ʅ88äo
äãäo
äãõIPäv
¨åôãä}
¨åôã¤îäv
¨åôãä}
¨åôã¤îõIL 8efäv
ä}
`äv
ä}
b •
ʅ88äo
äãäo
äãõI
äv
¨åôãä}
¨åôã¤îäv
¨åôãä}
¨åôã¤îõI 8efäv
ä}
`äv
ä}
b •
ʅ88ä o
äãäo
äãõIÄä v
¨åôãä }
¨åôã¤îäv
¨åôãä}
¨åôã¤îõIÀ 8efä v
ä }
`äv
ä}
b •
ʅ88äo
äãä o
äãõI~äv
¨åôãä}
¨åôã¤îä v
¨åôãä }
¨åôã¤îõIz 8efäv
ä}
`ä v
ä }
b •
ʅ88 Mää >ÿÿè Mv
 M]
 M}
 Mf
 Mo
 MT
 MNÿÿ8å
å'å&v Filled Quadrilateral I´ äT

 äT

 ä T

 äT

 „
äã Š
ä㤠
ä㤠–
äã¤I¬ ä]
¨  äf
¨ › ä]
¨ • äf
¨ ¡ ä ]
¨ œ
 ä f
¨ ¢
 ä]
¨ ¨
 äf
¨ ®
 åôã •åôãõ œ
åôãõ ¨
åôãõ ›åôãõ ¡åôãõ ¢
åôãõ ®
åôãõI¦ ä¾
´
 äÊ 8Ê
äÊ 8×
ä]
8ä
äf
8ð
ä 8ü
8ä
ä´
å 8ð
ä´
ê åè 8  åèù 8 åô 8& åôù 82 ä]
8ä
äf
8ð
ä 8ü
8ä
ä´
å 8ð
ä´
ê åè 8  åèù 8 åô 8& åôù 82 ä ]
8ä
ä f
8ð
ä 8ü
8ä
ä ´
å 8ð
ä ´
ê åè 8  åèù 8 åô 8& åôù 82 ä]
8ä
äf
8ð
ä 8ü
8ä
ä´
å 8ð
ä´
ê 8efåõåõ`’ 8Tä´
äI ? åè 8  åèù 8 åô 8& åôù 82882P"äo

äo

ä o

äo

 „
äã Š
ä㤠
ä㤠–
äã¤IJ"äv
¨ ä}
¨ ›äv
¨ •ä}
¨ ¡ä v
¨ œ
ä }
¨ ¢
äv
¨ ¨
ä}
¨ ®
 åôã •åôãõ œ
åôãõ ¨
åôãõ ›åôãõ ¡åôãõ ¢
åôãõ ®
åôãõID" ä¾
´
 •
Ê 8Ê
äÊ 8×
äv
8ä
ä}
8ð
ä 8ü
8ä
ä´
å 8ð
ä´
ê åè 8  åèù 8 åô 8& åôù 82 äv
8ä
ä}
8ð
ä 8ü
8ä
ä´
å 8ð
ä´
ê åè 8  åèù 8 åô 8& åôù 82 ä v
8ä
ä }
8ð
ä 8ü
8ä
ä ´
å 8ð
ä ´
ê åè 8  åèù 8 åô 8& åôù 82 äv
8ä
ä}
8ð
ä 8ü
8ä
ä´
å 8ð
ä´
ê 8efåõåõ`’ 8Tä´
äI ? åè 8  åèù 8 åô 8& åôù 82 Mää>ÿÿ<"( Mv
 M]
( M}
 Mf
( Mo
 MT
MNÿÿ888åå'vFilled Triangle IÐ& äT

 äT

 ä T

 „
äã Š
ä㤠
äã¤IÈ& ä]
¨  äf
¨ › ä]
¨ • äf
¨ ¡ ä ]
¨ œ
 ä f
¨ ¢
 åôã •åôãõ œ
åôãõ ›åôãõ ¡åôãõ ¢
åôãõIÂ& ä ¾
´
 äÊ 8Ê
äÊ 8×
ä]
8ä
äf
8ð
ä 8ü
8ä
ä´
å 8ð
ä´
ê åè 8  åèù 8 åô 8& åôù 82 ä]
8ä
äf
8ð
ä 8ü
8ä
ä´
å 8ð
ä´
ê åè 8  åèù 8 åô 8& åôù 82 ä ]
8ä
ä f
8ð
ä 8ü
8ä
ä ´
å 8ð
ä ´
ê 8efåõåõ`’ 8Tä´
ä I ? åè 8  åèù 8 åô 8& åôù 82882L+äo

äo

ä o

 „
äã Š
ä㤠
äã¤IF+äv
¨ ä}
¨ ›äv
¨ •ä}
¨ ¡ä v
¨ œ
ä }
¨ ¢
 åôã •åôãõ œ
åôãõ ›åôãõ ¡åôãõ ¢
åôãõI@+ ä ¾
´
 •
Ê 8Ê
äÊ 8×
äv
8ä
ä}
8ð
ä 8ü
8ä
ä´
å 8ð
ä´
ê åè 8  åèù 8 åô 8& åôù 82 äv
8ä
ä}
8ð
ä 8ü
8ä
ä´
å 8ð
ä´
ê åè 8  åèù 8 åô 8& åôù 82 ä v
8ä
ä }
8ð
ä 8ü
8ä
ä ´
å 8ð
ä ´
ê 8efåõåõ`’ 8Tä´
ä I ? åè 8  åèù 8 åô 8& åôù 82 Mää >ÿÿ8+( Mv
 M]
( M}
 Mf
( Mo
 MT
MNÿÿ888å)&å*&å+&v*Pointalist objects I, Mä \

>ÿÿ,  MT
äãI, 8ef  M]
 Mf
`äʓ8 MNÿÿ2â, Mä \

>ÿÿÜ, Mo
äãI„, 8ef Mv
M}
` •
ʓ8 Mv
 M]
 M}
 Mf
 Mo
 MT
 MNÿÿ8:~+û=-ÿÿåSû9 n+ÿÿÿÿÿÿÛ MapToWindow0JX&E
[åêWv6Transform object point in World Space to View Space.vCall GEO.DLL subroutine:åèåè å ê W Ö æ ö ^ z – Q m ‰ ´ Á Î º Ä Î$gv9Transform object point in View 3Space to Window 2Space: ÎäñI’ ºùåèð Î¥ º Äùåèð Î¥ Ä2 ºùåèðå0uð ºv)Can't divide by zero soo Äùåèðå0uð Äv)do the next best thing8v0Convert mapped points to integers for drawing: ºå0uâ ºå0uùÞ¤Iz º« [v
2–å0u ºÑð [v
8 Äå0uâ Äå0uùÞ¤IÒ Ä« [}
2îå0u ÄÑð [}
8 Îå0uâ Îå0uùÞ¤I* Ϋ [o
2Få0u ÎÑð [o
89 ÿÿÿÿÿÿÿÿ#SpinCube0$LXvAThere is a blue rotating wireframe cube orbiting in cyberspace.ov0The cube's angle of rotation is its SpinAngle.vRThe cube orbits around the cyberspace origin (0, 0, 0) at a radius of 3000 CLUs.v5The cube's position in its orbit is its OrbitAngle.C6
F
*vSpin and orbit the cube: 8MXä¦1H ä£  *ä£ * åh¦E¶ä  *åh¦EÌä * *å´÷î §ðå´¥   å´÷î §ðå´¥ !  Mää >ÿÿ$ä M!
åä M-
êä M9
Wääääää å ê W  $
ð å«å, M!
 ê«å, M-
 W«å, M9
å¸ ! ®ð ak
å¸ ! Òð a‡
 MNÿÿ$¥ À ¹Jj9 ÿÿÿÿÿÿÿÿ-ý

  3 Responses to “Category : BASIC Source Code
Archive   : GEODEM.ZIP
Filename : CSC5.BAS

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/