; VIEW3D (LISTING 10)
; by Paul Chabot
; ANTIC Magazine
INCLUDE "D:GR78M.ACT"
INCLUDE "D:MISC1.ACT"
INCLUDE "D:COLORS.ACT"
INCLUDE "D:DRAW3D.ACT"
INCLUDE "D:UPDATES.ACT"
INCLUDE "D:STICK3D.ACT"
INCLUDE "D:DISKIO.ACT"
INCLUDE "D:PRINTIO.ACT"
INCLUDE "D:MENU3D.ACT"
PROC Setup():BYTE i
SetTrig():Setjxjy():SetDfault():FixP(Q)
Gr78ON():dl1=dlist:sa1=sa:ram==-33
Graphics(0):ram==+33:dl2=dlist:cur=1
CMon():Menu():Dir():UReset():dlist=dl1
mes^=lin20
RETURN
PROC Main():BYTE k:Setup()
DO WHILE key=255 DO OD k=key:key=255
dlist=dl1:CPon()
IF k=31 THEN mes^=lin22 ;1
JoyD(1)
ELSEIF k=30 THEN mes^=lin22 ;2
CLR():JoyD(0)
ELSEIF k=26 THEN mes^=lin17 ;3
JoyE()
ELSEIF k=24 THEN mes^=lin19 ;4
JoyF()
ELSEIF k=29 THEN mes^=lin19 ;5
JoyC()
ELSEIF k=50 THEN mes^=lin20 ;0
UReset()
ELSEIF k=22 THEN mes^=lin18 ;X
rx=(rx+ri+360) MOD 360:Urot()
ELSEIF k=43 THEN mes^=lin18 ;Y
ry=(ry+ri+360) MOD 360:Urot()
ELSEIF k=23 THEN mes^=lin18 ;Z
rz=(rz+ri+360) MOD 360:Urot()
ELSEIF k=13 THEN mes^=lin18 ;I
ri==+1:IF ri>45 THEN ri=45 FI:Uri()
ELSEIF k=1 THEN mes^=lin18 ;J
ri==-1:IF ri<-45 THEN ri=-45 FI:Uri()
ELSEIF k=18 THEN mes^=lin23 ;C
FixCol()
ELSEIF k=16 THEN mes^=lin15 ;V
Uview():CLR():Draw(P)
ELSEIF k=37 THEN mes^=lin17 ;M
Umag()
ELSEIF k=58 THEN dlist=dl2 ;D
CMon():Dir()
ELSEIF k=0 THEN mes^=lin16 ;L
LoadP():Ueye():Ufoc(foc):FixE()
FixM():CLR():Draw(P):mes^=lin20
ELSEIF k=62 THEN mes^=lin16 ;S
SaveP():mes^=lin20
ELSEIF k=61 THEN mes^=lin15 ;G
Ugr()
ELSEIF k=10 THEN mes^=lin16 ;P
Prnt():mes^=lin20
ELSEIF k=33 THEN mes^=lin20 ;SPACE
CLR():Draw(P)
ELSE dlist=dl2:CMon()
FI
OD