dim anglex#, anglez#
dim vpcbt#(4)(2), vpcbb#(4)(2), vpcitl#(4)(2), vpcibl#(4)(2)                                    
dim vpcits#(4)(2), vpcibs#(4)(2), v3dfxct#(8)(2), v3dfxcs#(8)(2)
dim x3dfx_chip_pos, vedot#(6)(2), vedob#(6)(2), edo_ram_pos
dim zoom#, v3dfxctex#(4)(2), textures(15), vramdact#(6)(2)
dim vramdacs#(6)(2), vvgapibs#(4)(2), vvgapius#(4)(2) 
dim vvgapibhs#(4)(2), vvgapiuhs#(4)(2), vvgapit#(4)(2)
dim vvgapite#(4)(2), vvgapitufe#(2)(2), vvgapitbfe#(2)(2)
dim vga_pos, vga_color#(3)(2), vpciiobiu#(4)(2)
dim vpciiobim#(4)(2), vpciiobib#(4)(2), vslice#(24)(2)
dim vpciiobou#(4)(2), vpciiobom#(4)(2), vpciiobob#(4)(2)
dim vpcibeb#(18)(2), vpcibet#(18)(2), vslicb#(8)(2)
dim cslipins#(20)(2), sli_pin_pos_x, pinl, pinh, synctime#
dim sli_pin_pos_y, vvgaport#(16)(2), vvganut#(12)(2), demo_countdown
dim nut_pos, fps#, fps2#, chip_pin_texture, _1sec_timer
dim  background#(4)(2), MX#, MZ#, vgapins1#(15)(2), demomode
dim vgapins2#(15)(2), vga_pin_pos_y, vga_pin_pos_z, shift_vga_pin 
dim newtick1, oldtick1,timetick1


    ' Lighting
    glEnable (GL_LIGHTING)
    glEnable (GL_LIGHT0)
    glLightfv(GL_LIGHT0, GL_POSITION, Vec3(0, 100, 200))  'Set position of Light #0 with this command
    glEnable (GL_COLOR_MATERIAL)
    glEnable (GL_NORMALIZE)
'    glClearColor (.2, .2, .2, 1)

    textures(1) = LoadTexture ("textures\voodoo2_chip_2.bmp")
    textures(2) = LoadTexture ("textures\voodoo2_pcb_top3.bmp")
    textures(3) = LoadTexture ("textures\voodoo2_edo_ram.bmp")
    textures(4) = LoadTexture ("textures\voodoo2_ramdac.bmp")
    textures(5) = LoadTexture ("textures\voodoo2_pcb_bottom.bmp")
    textures(6) = LoadTexture ("textures\voodoo2_chip_tmu.bmp")
    textures(7) = LoadTexture ("textures\voodoo2_pci_long.bmp")
    textures(8) = LoadTexture ("textures\voodoo2_pci_short.bmp")
    textures(9) = LoadTexture ("textures\voodoo2_vga_connector.bmp")
    textures(10) = LoadTexture ("textures\voodoo2_chip_side.bmp")
    textures(11) = LoadTexture ("textures\voodoo2_ram_side.bmp")
    textures(12) = LoadTexture ("textures\voodoo2_vga_nut.bmp")
    textures(13) = LoadTexture ("textures\background.bmp")
    textures(14) = LoadTexture ("textures\voodoo2_bracket.bmp")
    textures(15) = LoadTexture ("textures\bracket_generic.bmp")
    
    textmode(text_overlaid)
    ResizeText(56, 35)

'VGA Colors
vga_color#(1) = vec3 (.08,.31,.5)
vga_color#(2) = vec3 (.1,.1,.1)

'PCB Bottom
vpcbt#(1) = vec3 (-102, 49, -1) 'top left corner
vpcbt#(2) = vec3 (102, 49, -1)  'top rigth corner
vpcbt#(3) = vec3 (102, -49, -1)  'botoom rigth corner    
vpcbt#(4) = vec3 (-102, -49, -1) 'bottom left corner 
        
'PCB Top
vpcbb#(1) = vec3 (-102, 49, 1) 'top left corner
vpcbb#(2) = vec3 (102, 49, 1)  'top rigth corner
vpcbb#(3) = vec3 (102, -49, 1)  'botoom rigth corner    
vpcbb#(4) = vec3 (-102, -49, 1) 'bottom left corner 

' PCI Connector Bottom Long
vpcitl#(1) = vec3 (-62, -49, -1) 'top left coner
vpcitl#(2) = vec3 (-0, -49, -1) 'top rigth corner
vpcitl#(3) = vec3 (-0, -57, -1) 'bottom rigth corner
vpcitl#(4) = vec3 (-62, -57, -1) 'bottom left coner

' PCI Connector Top Long
vpcibl#(1) = vec3 (-62, -49, 1) 'top left coner
vpcibl#(2) = vec3 (-0, -49, 1) 'top rigth corner
vpcibl#(3) = vec3 (-0, -57, 1) 'bottom rigth corner
vpcibl#(4) = vec3 (-62, -57, 1) 'bottom left coner

' PCI Connector Bottom Short
vpcits#(1) = vec3 (2, -49, -1) 'top left coner
vpcits#(2) = vec3 (16, -49, -1) 'top rigth corner
vpcits#(3) = vec3 (16, -57, -1) 'bottom rigth corner
vpcits#(4) = vec3 (2, -57, -1) 'bottom left coner

' PCI Connector Top Short
vpcibs#(1) = vec3 (2, -49, 1) 'top left coner
vpcibs#(2) = vec3 (16, -49, 1) 'top rigth corner
vpcibs#(3) = vec3 (16, -57, 1) 'bottom rigth corner
vpcibs#(4) = vec3 (2, -57, 1) 'bottom left coner 

' 3Dfx Chip Top Texture

v3dfxctex#(1) = vec3 (-12, -12, 5) 'Left Upper Corner of Texture
v3dfxctex#(2) = vec3 (14, -12, 5) 'Rigth Upper Corner of Texture
v3dfxctex#(3) = vec3 (14, -37, 5) 'Rigth Bottom Corner of Texture
v3dfxctex#(4) = vec3 (-12, -37, 5) 'Left Bottom Corner of Texture

' 3Dfx Chip Top
v3dfxct#(1) = vec3 (-12, -11, 5) 'left vertex of top side
v3dfxct#(2) = vec3 (14, -11, 5) 'rigth vertex of top side 
v3dfxct#(3) = vec3 (15, -12, 5) 'top vertex of rigth side 
v3dfxct#(4) = vec3 (15, -37, 5) 'bottom vertex of rigth side
v3dfxct#(5) = vec3 (14, -38, 5) 'rigth vertex of bottom side
v3dfxct#(6) = vec3 (-12, -38, 5) 'left vertex of bottom side
v3dfxct#(7) = vec3 (-13, -37, 5) 'bottom vertex of left side
v3dfxct#(8) = vec3 (-13, -12, 5) 'bottom vertex of left side 

' 3Dfx Chip Edges
v3dfxcs#(1) = vec3 (-12, -11, 1) 'left vertex of upper side
v3dfxcs#(2) = vec3 (14, -11, 1) 'rigth vertex of upper side 
v3dfxcs#(3) = vec3 (15, -12, 1) 'top vertex of rigth side 
v3dfxcs#(4) = vec3 (15, -37, 1) 'bottom vertex of rigth side
v3dfxcs#(5) = vec3 (14, -38, 1) 'rigth vertex of bottom side
v3dfxcs#(6) = vec3 (-12, -38, 1) 'left vertex of bottom side
v3dfxcs#(7) = vec3 (-13, -37, 1) 'bottom vertex of left side
v3dfxcs#(8) = vec3 (-13, -12, 1) 'bottom vertex of left side

' EDO RAM Top
vedot#(1) = vec3 (72, -31, 3) 'top left corner, slope
vedot#(2) = vec3 (73, -31, 4) 'top left corner, flat
vedot#(3) = vec3 (73, -41, 4) 'bottom left corner, flat
vedot#(4) = vec3 (72, -41, 3) 'bottom left corner, slope
vedot#(5) = vec3 (98, -31, 4) 'top rigth corner, flat
vedot#(6) = vec3 (98, -41, 4) 'bottom rigth corner, flat 

' EDO RAM Bottom
vedob#(1) = vec3 (72, -31, -3) 'top left corner, slope
vedob#(2) = vec3 (73, -31, -4) 'top left corner, flat
vedob#(3) = vec3 (73, -41, -4) 'bottom left corner, flat
vedob#(4) = vec3 (72, -41, -3) 'bottom left corner, slope
vedob#(5) = vec3 (98, -31, -4) 'top rigth corner, flat
vedob#(6) = vec3 (98, -41, -4) 'bottom rigth corner, flat

' RAMRAD Top

vramdact#(1) = vec3 (0, 0, 5)    'top left corner, flat
vramdact#(2) = vec3 (23, 0, 5)   'top rigth corner, flat
vramdact#(3) = vec3 (23, -21, 5) 'top rigth corner, flat
vramdact#(4) = vec3 (0, -21, 5)  'bottom left corner, flat
vramdact#(5) = vec3 (21, -23, 3)  'bottom rigth corner, slope
vramdact#(6) = vec3 (0, -23, 3) 'bottom left corner, slope

' RAMDAC Edges

vramdacs#(1) = vec3 (0, 0, 0)    'top left corner
vramdacs#(2) = vec3 (23, 0, 0)   'top rigth corner
vramdacs#(3) = vec3 (23, -21, 0) 'top rigth corner
vramdacs#(4) = vec3 (0, -21, 0)  'bottom left corner
vramdacs#(5) = vec3 (21, -23, 0)  'bottom rigth corner
vramdacs#(6) = vec3 (0, -23, 0) 'bottom left corner 

' VGA Port Internal Fitting Bottom Side

vvgapibs#(1) = vec3 (15,0,0) 'bottom rigth corner
vvgapibs#(2) = vec3 (15,0,3) 'top rigth corner
vvgapibs#(3) = vec3 (3,0,3) 'top left corner
vvgapibs#(4) = vec3 (0,0,0) 'bottom left corner 

' VGA Port Internal Fitting Upper Side

vvgapius#(1) = vec3 (15,31,0) 'bottom rigth corner
vvgapius#(2) = vec3 (15,31,3) 'top rigth corner
vvgapius#(3) = vec3 (3,31,3) 'top left corner
vvgapius#(4) = vec3 (0,31,0) 'bottom left corner

' VGA Port Internal Bottom High Side

vvgapibhs#(1) = vec3 (15,6,3) 'bottom rigth corner
vvgapibhs#(2) = vec3 (15,6,10) 'top rigth corner
vvgapibhs#(3) = vec3 (3,6,10) 'top left corner
vvgapibhs#(4) = vec3 (3,6,3) 'bottom left corner

' VGA Port Internal Upper High Side

vvgapiuhs#(1) = vec3 (15,25,3) 'bottom rigth corner
vvgapiuhs#(2) = vec3 (15,25,10) 'top rigth corner
vvgapiuhs#(3) = vec3 (3,25,10) 'top left corner
vvgapiuhs#(4) = vec3 (3,25,3) 'bottom left corner

' VGA Port Internal Top
vvgapit#(1) = vec3 (3,7,11) 'bottom left corner
vvgapit#(2) = vec3 (3,24,11) 'top left corner
vvgapit#(3) = vec3 (15,24,11) 'top rigth corner
vvgapit#(4) = vec3 (15,7,11) 'bottom rigth corner 

' VGA Port Internal Top Forward Edge
vvgapite#(1) = vec3 (0,1,13) 'bottom left corner
vvgapite#(2) = vec3 (0,30,13) 'top left corner
vvgapite#(3) = vec3 (3,30,13) 'top rigth corner
vvgapite#(4) = vec3 (3,1,13) 'bottom rigth corner

' VGA Port Internal Upper Forward Edge
vvgapitufe#(1) = vec3 (0,31,12) 'bottom left corner
vvgapitufe#(2) = vec3 (3,31,12) 'top left corner

' VGA Port Internal Bottom Forward Edge
vvgapitbfe#(1) = vec3 (0,0,12) 'bottom left corner
vvgapitbfe#(2) = vec3 (3,0,12) 'top left corner

' PCI I/O Bracket, Inside, Up
vpciiobiu#(1) = vec3 (0,0,0) 'bottom left corner
vpciiobiu#(2) = vec3 (0,0,18) 'top left corner
vpciiobiu#(3) = vec3 (0,-2,20) 'top rigth corner
vpciiobiu#(4) = vec3 (0,-2,2) 'bottom rigth corner

' PCI I/O Bracket, Inside, Middle
vpciiobim#(1) = vec3 (0,-105,2) 'bottom left corner
vpciiobim#(2) = vec3 (0,-105,20) 'top left corner
vpciiobim#(3) = vec3 (0,-107,17) 'top rigth corner
vpciiobim#(4) = vec3 (0,-107,5) 'bottom rigth corner

' PCI I/O Bracket, Inside, Bottom
vpciiobib#(1) = vec3 (0,-113,5) 'bottom left corner
vpciiobib#(2) = vec3 (0,-113,17) 'top left corner
vpciiobib#(3) = vec3 (0,-114,16) 'top rigth corner
vpciiobib#(4) = vec3 (0,-114,6) 'bottom rigth corner

' PCI I/O Bracket, Outside, Up
vpciiobou#(1) = vec3 (-1,0,0) 'bottom left corner
vpciiobou#(2) = vec3 (-1,0,18) 'top left corner
vpciiobou#(3) = vec3 (-1,-2,20) 'top rigth corner
vpciiobou#(4) = vec3 (-1,-2,2) 'bottom rigth corner

' PCI I/O Bracket, Outside, Middle
vpciiobom#(1) = vec3 (-1,-105,2) 'bottom left corner
vpciiobom#(2) = vec3 (-1,-105,20) 'top left corner
vpciiobom#(3) = vec3 (-1,-107,17) 'top rigth corner
vpciiobom#(4) = vec3 (-1,-107,5) 'bottom rigth corner

' PCI I/O Bracket, Outside, Bottom
vpciiobob#(1) = vec3 (-1,-113,5) 'bottom left corner
vpciiobob#(2) = vec3 (-1,-113,17) 'top left corner
vpciiobob#(3) = vec3 (-1,-114,16) 'top rigth corner
vpciiobob#(4) = vec3 (-1,-114,6) 'bottom rigth corner 

' PCI I/O Bracket Ear Bottom
vpcibeb#(1)  = vec3 (0,0,0)
vpcibeb#(2)  = vec3 (-11,0,0)
vpcibeb#(3)  = vec3 (-12,0,-1)
vpcibeb#(4)  = vec3 (-12,0,-7)
vpcibeb#(5)  = vec3 (-9,0,-7)
vpcibeb#(6)  = vec3 (-9,0,-10)
vpcibeb#(7)  = vec3 (-12,0,-10)
vpcibeb#(8)  = vec3 (-12,0,-17)
vpcibeb#(9)  = vec3 (-11,0,-18)
vpcibeb#(10) = vec3 (-7,0,-18)
vpcibeb#(11) = vec3 (-7,0,-13)
vpcibeb#(12) = vec3 (-6,0,-12)
vpcibeb#(13) = vec3 (-4,0,-12)
vpcibeb#(14) = vec3 (-3,0,-13)
vpcibeb#(15) = vec3 (-3,0,-18)
vpcibeb#(16) = vec3 (0,0,-18)
vpcibeb#(17)  = vec3 (0,-4,0)
vpcibeb#(18) = vec3 (0,-4,-18)

' PCI I/O Bracket Ear Top
vpcibet#(1)  = vec3 (1,1,0)
vpcibet#(2)  = vec3 (-11,1,0)
vpcibet#(3)  = vec3 (-12,1,-1)
vpcibet#(4)  = vec3 (-12,1,-7)
vpcibet#(5)  = vec3 (-9,1,-7)
vpcibet#(6)  = vec3 (-9,1,-10)
vpcibet#(7)  = vec3 (-12,1,-10)
vpcibet#(8)  = vec3 (-12,1,-17)
vpcibet#(9)  = vec3 (-11,1,-18)
vpcibet#(10) = vec3 (-7,1,-18)
vpcibet#(11) = vec3 (-7,1,-13)
vpcibet#(12) = vec3 (-6,1,-12)
vpcibet#(13) = vec3 (-4,1,-12)
vpcibet#(14) = vec3 (-3,1,-13)
vpcibet#(15) = vec3 (-3,1,-18)
vpcibet#(16) = vec3 (1,1,-18)
vpcibet#(17)  = vec3 (1,-4,0)
vpcibet#(18) = vec3 (1,-4,-18)

' SLI Connector, Sides
vslice#(1)  = vec3 (0,0,0)
vslice#(2)  = vec3 (-23,0,0)
vslice#(3)  = vec3 (-23,7,0)
vslice#(4)  = vec3 (0,7,0)
vslice#(5)  = vec3 (-23,0,-1)
vslice#(6)  = vec3 (-23,7,-1)
vslice#(7)  = vec3 (-1,7,-1)
vslice#(8)  = vec3 (-1,0,-1)
vslice#(9)  = vec3 (-1,0,-8)
vslice#(10) = vec3 (-1,7,-8)
vslice#(11) = vec3 (-49,7,-8)
vslice#(12) = vec3 (-49,0,-8)
vslice#(13) = vec3 (-49,0,-1)
vslice#(14) = vec3 (-49,7,-1)
vslice#(15) = vec3 (-27,7,-1)
vslice#(16) = vec3 (-27,0,-1)
vslice#(17) = vec3 (-27,0,0)
vslice#(18) = vec3 (-27,7,0)
vslice#(19) = vec3 (-50,7,0)
vslice#(20) = vec3 (-50,0,0)
vslice#(21) = vec3 (-50,0,-9)
vslice#(22) = vec3 (-50,7,-9)
vslice#(23) = vec3 (0,7,-9)
vslice#(24) = vec3 (0,0,-9)

' SLI Connector, Back Side
vslicb#(1) = vec3 (0,0,0)
vslicb#(2) = vec3 (-50,0,0)
vslicb#(3) = vec3 (-50,0,-9)
vslicb#(4) = vec3 (0,0,-9)
vslicb#(5) = vec3 (0,2,0)
vslicb#(6) = vec3 (-50,2,0)
vslicb#(7) = vec3 (-50,2,-9)
vslicb#(8) = vec3 (0,2,-9)

' VGA Port

vvgaport#(1) = vec3 (0,-1,0)
vvgaport#(2) = vec3 (0,-15,0)
vvgaport#(3) = vec3 (0,-16,-1)
vvgaport#(4) = vec3 (0,-15,-7)
vvgaport#(5) = vec3 (0,-14,-8)
vvgaport#(6) = vec3 (0,-2,-8)
vvgaport#(7) = vec3 (0,-1,-7)
vvgaport#(8) = vec3 (0,0,-1)
vvgaport#(9) = vec3 (5,-1,0)
vvgaport#(10) = vec3 (5,-15,0)
vvgaport#(11) = vec3 (5,-16,-1)
vvgaport#(12) = vec3 (5,-15,-7)
vvgaport#(13) = vec3 (5,-14,-8)
vvgaport#(14) = vec3 (5,-2,-8)
vvgaport#(15) = vec3 (5,-1,-7)
vvgaport#(16) = vec3 (5,0,-1)

'VGA Nut
vvganut#(1)  = vec3 (0,-1.5,0)
vvganut#(2)  = vec3 (0,-4.5,0)
vvganut#(3)  = vec3 (0,-6,-2.5)
vvganut#(4)  = vec3 (0,-4.5,-5)
vvganut#(5)  = vec3 (0,-1.5,-5)
vvganut#(6)  = vec3 (0,0,-2.5)
vvganut#(7)  = vec3 (5,-1.5,0)
vvganut#(8)  = vec3 (5,-4.5,0)
vvganut#(9)  = vec3 (5,-6,-2.5)
vvganut#(10) = vec3 (5,-4.5,-5)
vvganut#(11) = vec3 (5,-1.5,-5)
vvganut#(12) = vec3 (5,0,-2.5)

background#(1) = vec3 (-310,235,-400) 
background#(2) = vec3 (310,235,-400)
background#(3) = vec3 (310,-235,-400)
background#(4) = vec3 (-310,-235,-400)

vgapins1#(1) = vec3 (0,1,0)
vgapins1#(2) = vec3 (5,1,0)
vgapins1#(3) = vec3 (5,0,0)
vgapins1#(4) = vec3 (0,0,0)

vgapins2#(1) = vec3 (0,.5,-.5)
vgapins2#(2) = vec3 (5,.5,-.5)
vgapins2#(3) = vec3 (5,.5,.5)
vgapins2#(4) = vec3 (0,.5,.5)   

'Enable demomode at launch
demomode = 1
dim a

while true
        
        ' Print stuff on screen 
        cls 
        locate 0,0: print fps2# + " FPS"
        locate 28,34: print "Created by pa1983 aka Virus" 

'        locate 0,2: print anglex# + " Angle X"
'        locate 0,3: print anglez# + " Angle Z" 
        
        ' activate demo mode
        if ScanKeyDown (VK_SPACE) then demomode = 1       '<------ activate demo mode when pressing space bar
        endif
        
        '1 second timer
                newtick1 = TickCount()
        if newtick1 > oldtick1 + 1000 then _1sec_timer = 1
            if demo_countdown < 30 then                     '<---- 30 sec countdown to start demo mode again
            demo_countdown = demo_countdown + 1
            endif
        oldtick1 = newtick1  
        endif

        ' rotate card on screen
        
        while SyncTimer (100/6)
            synctime# = .2
            if demo_countdown = 30 then demomode = 1 endif            '<------ automatically start  demo mode
        if demomode = 1 then
        anglex# = anglex# + synctime# * 1.5
        anglez# = anglez# + synctime#
        endif
        wend
        ' keep angles defined as 1 - 360 degrees

        if anglex# > 360 then anglex# = 0 endif
        if anglex# < 0 then anglex# = 360 endif
        if anglez# > 360 then anglez# = 0 endif
        if anglez# < 0 then anglez# = 360 endif
        
        glClear (GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT)
        glLoadIdentity ()
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(13))
        glbegin (GL_QUADS)
            glColor3f (1,1,1): glTexCoord2f(0,1): glNormal3f(0, 0, 1): glVertex3fv (background#(1)) 
            glColor3f (1,1,1): glTexCoord2f(1,1): glNormal3f(0, 0, 1): glVertex3fv (background#(2)) 
            glColor3f (1,1,1): glTexCoord2f(1,0): glNormal3f(0, 0, 1): glVertex3fv (background#(3)) 
            glColor3f (1,1,1): glTexCoord2f(0,0): glNormal3f(0, 0, 1): glVertex3fv (background#(4))
        glend ()
        glDisable (GL_TEXTURE_2D)
        glTranslatef (0, 0, -240 - zoom#)
        glRotatef (anglex#, 1, 0, 0)
        glRotatef (anglez#, 0, 0, 1)
     
        '--------------------------------------------------------------------------------------------'
        ' VGA Pins
                 
        shift_vga_pin = 1 
        glPushMatrix ()
            glTranslatef (-109,-18.5,10)
            glDisable (GL_LIGHTING)
            for vga_pin_pos_y = 1 to 3
            glPushMatrix ()
                for vga_pin_pos_z = 1 to 5
                    if vga_pin_pos_y = 2 and shift_vga_pin = 1 then
                    glTranslatef (0, 1, 0)
                    shift_vga_pin = 0
                    endif
                    glBegin (GL_QUADS)
                        glColor3f (.40,.40,.33): glVertex3fv (vgapins1#(1))
                        glColor3f (.40,.40,.33): glVertex3fv (vgapins1#(2))
                        glColor3f (.40,.40,.33): glVertex3fv (vgapins1#(3))
                        glColor3f (.40,.40,.33): glVertex3fv (vgapins1#(4))
            
                        glColor3f (.40,.40,.33): glVertex3fv (vgapins2#(1))
                        glColor3f (.40,.40,.33): glVertex3fv (vgapins2#(2))
                        glColor3f (.40,.40,.33): glVertex3fv (vgapins2#(3))
                        glColor3f (.40,.40,.33): glVertex3fv (vgapins2#(4))
                    glEnd ()
                glTranslatef (0, -2, 0)
            next
        glPopMatrix ()
        glTranslatef (0, 0, -2)  
        next
       
         
         glPopMatrix ()
        glEnable (GL_LIGHTING)



        '-------------------------------------------------------------------------------------------'
        ' VGA Nut
        for nut_pos = 1 to 4
                glPushMatrix ()
            if nut_pos = 1 then glTranslatef (-110, 31, 10.5) endif
            if nut_pos = 2 then glTranslatef (-110, 4, 10.5) endif
            if nut_pos = 3 then glTranslatef (-110, -5, 10.5) endif 
            if nut_pos = 4 then glTranslatef (-110, -32, 10.5) endif
        if anglex# <= 90 and anglex# >= 0 or anglex# <= 360 and anglex# >= 270 then
'        if anglex# <= 45 and anglex# >= 0 or anglex# <= 360 and anglex# >= 315 then  ' for testing only
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vvganut#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vvganut#(7))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vvganut#(8))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vvganut#(2))
        glEnd ()
        endif
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -3, 2): glVertex3fv (vvganut#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, -3, 2): glVertex3fv (vvganut#(8))
            glColor3f (.3,.3,.3): glNormal3f(0, -3, 2): glVertex3fv (vvganut#(9))
            glColor3f (.3,.3,.3): glNormal3f(0, -3, 2): glVertex3fv (vvganut#(3))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -3, -2): glVertex3fv (vvganut#(3))
            glColor3f (.3,.3,.3): glNormal3f(0, -3, -2): glVertex3fv (vvganut#(9))
            glColor3f (.3,.3,.3): glNormal3f(0, -3, -2): glVertex3fv (vvganut#(10))
            glColor3f (.3,.3,.3): glNormal3f(0, -3, -2): glVertex3fv (vvganut#(4))
        glEnd ()
        if anglex# >= 90 and anglex# <= 270 then
'       if anglex# > 135 and anglex# < 225 then ' for testing only
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vvganut#(4))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vvganut#(10))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vvganut#(11))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vvganut#(5))
        glEnd ()
        endif
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 3, -2): glVertex3fv (vvganut#(5))
            glColor3f (.3,.3,.3): glNormal3f(0, 3, -2): glVertex3fv (vvganut#(11))
            glColor3f (.3,.3,.3): glNormal3f(0, 3, -2): glVertex3fv (vvganut#(12))
            glColor3f (.3,.3,.3): glNormal3f(0, 3, -2): glVertex3fv (vvganut#(6))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 3, 2): glVertex3fv (vvganut#(6))
            glColor3f (.3,.3,.3): glNormal3f(0, 3, 2): glVertex3fv (vvganut#(12))
            glColor3f (.3,.3,.3): glNormal3f(0, 3, 2): glVertex3fv (vvganut#(7))
            glColor3f (.3,.3,.3): glNormal3f(0, 3, 2): glVertex3fv (vvganut#(1))
        glEnd ()
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(12))
        glBegin (GL_QUADS)
            glColor3f (.9,.9,.9):glTexCoord2f(0,.98): glNormal3f(-1, 0, 0): glVertex3fv (vvganut#(1))
            glColor3f (.9,.9,.9):glTexCoord2f(.8,.98): glNormal3f(-1, 0, 0): glVertex3fv (vvganut#(2))
            glColor3f (.9,.9,.9):glTexCoord2f(1,.01): glNormal3f(-1, 0, 0): glVertex3fv (vvganut#(3))
            glColor3f (.9,.9,.9):glTexCoord2f(0,.01): glNormal3f(-1, 0, 0): glVertex3fv (vvganut#(6))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.9,.9,.9):glTexCoord2f(1,.01): glNormal3f(-1, 0, 0): glVertex3fv (vvganut#(6))
            glColor3f (.9,.9,.9):glTexCoord2f(0,.01): glNormal3f(-1, 0, 0): glVertex3fv (vvganut#(3))
            glColor3f (.9,.9,.9):glTexCoord2f(0,.98): glNormal3f(-1, 0, 0): glVertex3fv (vvganut#(4))
            glColor3f (.9,.9,.9):glTexCoord2f(.8,.98): glNormal3f(-1, 0, 0): glVertex3fv (vvganut#(5))
        glEnd ()
        glDisable (GL_TEXTURE_2D)
        glPopMatrix ()
        next

        '--------------------------------------------------------------------------------------------'
        ' VGA Port 
        for vga_pos = 1 to 2
                glPushMatrix ()
            if vga_pos = 1 then glTranslatef (-110, 22.5, 12) endif
            if vga_pos = 2 then glTranslatef (-110, -13.5, 12) endif
        ' VGA Port Sides
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vvgaport#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vvgaport#(9))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vvgaport#(10))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vvgaport#(2))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vvgaport#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vvgaport#(10))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vvgaport#(11))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vvgaport#(3))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vvgaport#(3))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vvgaport#(11))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vvgaport#(12))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vvgaport#(4))
        glEnd ()
         glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vvgaport#(4))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vvgaport#(12))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vvgaport#(13))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vvgaport#(5))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vvgaport#(5))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vvgaport#(13))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vvgaport#(14))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vvgaport#(6))
        glEnd () 
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vvgaport#(6))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vvgaport#(14))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vvgaport#(15))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vvgaport#(7))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vvgaport#(7))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vvgaport#(15))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vvgaport#(16))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vvgaport#(8))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vvgaport#(8))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vvgaport#(16))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vvgaport#(9))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vvgaport#(1))
        glEnd ()   
        glPopMatrix ()
        next
        ' VGA Port Blue End 
        
        glPushMatrix ()
        glTranslatef (-110, 22.5, 12)
        
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vvgaport#(1))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vvgaport#(2))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vvgaport#(3))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vvgaport#(8))
        glEnd ()
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(9)) 
        glBegin (GL_QUADS)
            glColor3f (1,1,1): glTexCoord2f (0,1): glNormal3f(-1, 0, 0): glVertex3fv (vvgaport#(8))
            glColor3f (1,1,1): glTexCoord2f (1,1): glNormal3f(-1, 0, 0): glVertex3fv (vvgaport#(3))
            glColor3f (1,1,1): glTexCoord2f (.95,0): glNormal3f(-1, 0, 0): glVertex3fv (vvgaport#(4))
            glColor3f (1,1,1): glTexCoord2f (.05,0): glNormal3f(-1, 0, 0): glVertex3fv (vvgaport#(7))
        glEnd ()
        glDisable (GL_TEXTURE_2D)
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vvgaport#(7))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vvgaport#(4))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vvgaport#(5))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vvgaport#(6))
        glEnd ()
        
        glPopMatrix ()


        glPopMatrix ()

        '---------------------------------------------------------------------------------------------------'
        ' SLI Connector Pins
        if anglez# >= 275 and anglez# <= 360 or anglez# >= 0 and anglez# <= 90 then 
            if anglex# <= 135 and anglex# >= 0 or anglex# <= 360 and anglex# >= 265 then goto slipins endif
        else 
            if anglez# > 90 and anglez# < 275 then
                if anglex# <= 95 and anglex# >= 0 or anglex# <= 360 and anglex# >= 223 then
            slipins:
            glPushMatrix ()
            glTranslatef (-54.5, 36, 4.5)
            glDisable (GL_LIGHTING)
            for sli_pin_pos_y = 1 to 2
            glPushMatrix ()
                for sli_pin_pos_x = 1 to 17
                if sli_pin_pos_y = 2 then
                pinl = 2.5: pinh = -3
                else
                pinl = 0: pinh = 0
            endif
           
        ' SLI Connector Pins
        cslipins#(1)  = vec3 (0,0,0)
        cslipins#(2)  = vec3 (0,9 + pinl,0)
        cslipins#(3)  = vec3 (0,9 + pinl,-1)
        cslipins#(4)  = vec3 (0,1,-1)
        cslipins#(5)  = vec3 (0,1,-3 + pinh)
        cslipins#(6)  = vec3 (0,0,-3 + pinh)

        cslipins#(7)   = vec3 (.5,.5,-0.5)
        cslipins#(8)   = vec3 (.5,9 + pinl,-0.5)
        cslipins#(9)   = vec3 (-0.5,9 + pinl,-0.5)
        cslipins#(10)  = vec3 (-0.5,.5,.-0.5)
        cslipins#(11)  = vec3 (.5,.5,-3 + pinh)
        cslipins#(12)  = vec3 (-0.5,.5,-3 + pinh)
        

        
        ' SLI Connector Pins
         glBegin (GL_QUADS)
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(1))
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(2))
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(3))
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(4))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(1))
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(4))
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(5))
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(6))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(7))
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(8))
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(9))
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(10))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(10))
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(7))
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(11))
            glColor3f (.40,.40,.33): glVertex3fv (cslipins#(12))
        glEnd ()
            glTranslatef (-2.5, 0, 0)
            next
        glPopMatrix ()
        glTranslatef (0, -2, 3)  
        next
        glPopMatrix ()
        glEnable (GL_LIGHTING)
        endif
    endif
endif
        

        ' SLI Connector, Back Side 
        if anglez# >= 275 and anglez# <= 360 or anglez# >= 0 and anglez# <= 90 then 
            if anglex# <= 150 and anglex# >= 0 or anglex# <= 360 and anglex# >= 265 then goto sliconnector endif
        else 
            if anglez# > 90 and anglez# < 275 then
                if anglex# <= 95 and anglex# >= 0 or anglex# <= 360 and anglex# >= 205 then
        
        sliconnector:
        glPushMatrix ()
        glTranslatef (-49, 38, 10)
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(0, -1, 0): glVertex3fv (vslicb#(1)) 
            glColor3f (.1,.1,.1): glNormal3f(0, -1, 0): glVertex3fv (vslicb#(2))
            glColor3f (.1,.1,.1): glNormal3f(0, -1, 0): glVertex3fv (vslicb#(3))
            glColor3f (.1,.1,.1): glNormal3f(0, -1, 0): glVertex3fv (vslicb#(4)) 
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslicb#(5)) 
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslicb#(6))
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslicb#(7))
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslicb#(8)) 
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslicb#(1)) 
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslicb#(2))
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslicb#(6))
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslicb#(5))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslicb#(6)) 
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslicb#(2))
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslicb#(3))
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslicb#(7)) 
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslicb#(1)) 
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslicb#(5))
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslicb#(8))
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslicb#(4)) 
        glEnd ()
        glPopMatrix ()
        ' SLI Connector Sides and Edges
        glPushMatrix ()
        glTranslatef (-49, 40, 10)
        glEnable(GL_CULL_FACE) ' Enable Culling, removing one side of a face
        glCullFace(GL_FRONT)   ' Remove one side of Face making it transparent
        ' SLI Connector Inner Surface
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(0, 0, -1): glVertex3fv (vslice#(7)) 
            glColor3f (.1,.1,.1): glNormal3f(0, 0, -1): glVertex3fv (vslice#(6))
            glColor3f (.1,.1,.1): glNormal3f(0, 0, -1): glVertex3fv (vslice#(5))
            glColor3f (.1,.1,.1): glNormal3f(0, 0, -1): glVertex3fv (vslice#(8)) 
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslice#(7))   
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslice#(8))
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslice#(9))
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslice#(10))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslice#(9))    
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslice#(12))
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslice#(11))
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslice#(10))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslice#(13))    
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslice#(14))
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslice#(11))
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslice#(12))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(0, 0, -1): glVertex3fv (vslice#(15))     
            glColor3f (.1,.1,.1): glNormal3f(0, 0, -1): glVertex3fv (vslice#(14))
            glColor3f (.1,.1,.1): glNormal3f(0, 0, -1): glVertex3fv (vslice#(13))
            glColor3f (.1,.1,.1): glNormal3f(0, 0, -1): glVertex3fv (vslice#(16))
        glEnd ()
        ' SLI Connetor Outer Surface  ------------------------------------------
        
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslice#(1))        
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslice#(2))
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslice#(3))
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslice#(4))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslice#(1))         
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslice#(4))
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslice#(23))
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslice#(24))
        glEnd ()
'        glBegin (GL_QUADS)
'            glColor3f (.1,.1,.1): glNormal3f(0, 0, -1): glVertex3fv (vslice#(23))       
'            glColor3f (.1,.1,.1): glNormal3f(0, 0, -1): glVertex3fv (vslice#(22))
'            glColor3f (.1,.1,.1): glNormal3f(0, 0, -1): glVertex3fv (vslice#(21))
'            glColor3f (.1,.1,.1): glNormal3f(0, 0, -1): glVertex3fv (vslice#(24))
'        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslice#(19))        
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslice#(20))
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslice#(21))
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslice#(22))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslice#(17))        
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslice#(20))
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslice#(19))
            glColor3f (.1,.1,.1): glNormal3f(0, 0, 1): glVertex3fv (vslice#(18))
        glEnd ()
        glDisable (GL_CULL_FACE)
        ' SLI Connector Outer Edge
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(4))            
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(3))
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(6))
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(7))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(4))         
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(7))
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(10))
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(23))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(10))       
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(11))
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(22))
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(23))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(14))       
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(19))
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(22))
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(11))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(18))        
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(19))
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(14))
            glColor3f (.1,.1,.1): glNormal3f(0, 1, 0): glVertex3fv (vslice#(15))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslice#(3))        
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslice#(2))
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslice#(5))
            glColor3f (.1,.1,.1): glNormal3f(-1, 0, 0): glVertex3fv (vslice#(6))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslice#(17))        
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslice#(18))
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslice#(15))
            glColor3f (.1,.1,.1): glNormal3f(1, 0, 0): glVertex3fv (vslice#(16))
        glEnd ()
        glPopMatrix ()
        
                endif
            endif
        endif
        
        '-------------------------------------------------------------------'
        ' PCI I/O Bracket
        ' PCI Bracket
        glPushMatrix ()
        glTranslatef (-105, 43, 15)
        ' PCI I/O Bracket Ear Bottom -----------------------------------------
        glEnable(GL_CULL_FACE) ' Enable Culling, removing one side of a face
        glCullFace(GL_BACK)   ' Remove one side of Face making it transparent
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(13))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(14))
        glEnd ()
        glBegin (GL_TRIANGLES)
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(5))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(13))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(3))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(4))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(5))
        glEnd ()
        glBegin (GL_TRIANGLES)
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(13))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(5))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(6))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(13))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(6))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(7))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(12))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(12))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(7))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(8))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(11))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(11))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(8))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(9))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(10))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(14))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(15))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(16))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(14))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(15))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpcibeb#(16))
        glEnd ()
        glCullFace(GL_FRONT)   ' Remove one side of Face making it transparent 
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(15))
        glBegin (GL_QUADS)
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(0,1): glVertex3fv (vpcibeb#(1))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(1,1): glVertex3fv (vpcibeb#(17))       
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(1,0): glVertex3fv (vpcibeb#(18))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(0,0): glVertex3fv (vpcibeb#(16))
        glEnd ()
        glDisable (GL_TEXTURE_2D)
        glDisable(GL_CULL_FACE)
        
        ' PCI I/O Bracket Ear Top -------------------------------------------------------------
        glEnable(GL_CULL_FACE) ' Enable Culling, removing one side of a face
        glCullFace(GL_FRONT)   ' Remove one side of Face making it transparent
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(13))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(14))
        glEnd ()
        glBegin (GL_TRIANGLES)
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(5))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(13))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(3))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(4))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(5))
        glEnd ()
        glBegin (GL_TRIANGLES)
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(13))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(5))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(6))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(13))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(6))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(7))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(12))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(12))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(7))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(8))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(11))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(11))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(8))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(9))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(10))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(14))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(15))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 0): glVertex3fv (vpcibet#(16))
        glEnd ()
        glCullFace(GL_BACK)   ' Remove one side of Face making it transparent
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpcibet#(1))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpcibet#(17))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpcibet#(18))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpcibet#(16))
        glEnd ()
        glDisable(GL_CULL_FACE)

        ' PCI I/O Bracket Ear Edges ------------------------------------------
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpcibet#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpcibeb#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpcibeb#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpcibet#(2))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpcibet#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpcibeb#(2))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibeb#(3))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibet#(3))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibet#(3))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibeb#(3))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibeb#(4))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibet#(4))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibet#(4))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibeb#(4))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibeb#(5))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibet#(5))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibet#(5))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibeb#(5))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibeb#(6))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibet#(6))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpcibet#(6))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpcibeb#(6))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpcibeb#(7))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpcibet#(7))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibet#(7))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibeb#(7))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibeb#(8))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibet#(8))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibet#(8))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibeb#(8))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibeb#(9))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibet#(9))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibet#(9))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibeb#(9))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibeb#(10))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibet#(10))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpcibet#(10))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpcibeb#(10))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpcibeb#(11))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpcibet#(11))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpcibet#(11))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpcibeb#(11))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibeb#(12))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibet#(12))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibet#(12))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibeb#(12))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibeb#(13))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibet#(13))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibet#(13))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibeb#(13))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibeb#(14))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibet#(14))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibet#(14))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibeb#(14))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibeb#(15))
            glColor3f (.3,.3,.3): glNormal3f(-1, 0, 0): glVertex3fv (vpcibet#(15))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibet#(15))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibeb#(15))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibeb#(16))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibet#(16))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpcibeb#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpcibet#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpcibet#(17))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpcibeb#(17))
        glEnd ()
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibeb#(16))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibet#(16))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibet#(18))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpcibeb#(18))
        glEnd ()
        glPopMatrix ()
        ' PCI Bracket
        glPushMatrix ()
        glTranslatef (-104, 39, -3)
        ' PCI I/O Braket, End Edge, Bottom
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpciiobob#(3))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpciiobib#(3))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpciiobib#(4))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpciiobob#(4))
        glEnd ()
        ' PCI I/O Braket, Bottom Edge, Bottom
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpciiobob#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpciiobib#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpciiobib#(4))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpciiobob#(4))
        glEnd ()
        ' PCI I/O Braket, Upper Edge, Bottom
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpciiobob#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpciiobib#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpciiobib#(3))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, 0): glVertex3fv (vpciiobob#(3))
        glEnd ()
        ' PCI I/O Braket, Bottom Edge, Middle to Bottom
        if anglex# > 90 and anglex# < 270 then
        glBegin (GL_QUADS)
            glColor3f (0.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpciiobom#(4))
            glColor3f (0.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpciiobim#(4))
            glColor3f (0.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpciiobib#(1))
            glColor3f (0.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpciiobob#(1))
        glEnd ()
        ' PCI I/O Braket, Bottom Edge, Connect Up and Middle
        glBegin (GL_QUADS)
            glColor3f (0.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpciiobou#(4))
            glColor3f (0.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpciiobiu#(4))
            glColor3f (0.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpciiobim#(1))
            glColor3f (0.3,.3,.3): glNormal3f(0, 0, -1): glVertex3fv (vpciiobom#(1))
        glEnd ()
        ' PCI I/O Braket, Upper Edge, Middle to Bottom
        endif
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpciiobom#(3))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpciiobim#(3))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpciiobib#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpciiobob#(2))
        glEnd ()
        ' PCI I/O Braket, Bottom Edge, Middle
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -3, -2): glVertex3fv (vpciiobom#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, -3, -2): glVertex3fv (vpciiobim#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, -3, -2): glVertex3fv (vpciiobim#(4))
            glColor3f (.3,.3,.3): glNormal3f(0, -3, -2): glVertex3fv (vpciiobom#(4))
        glEnd ()
        ' PCI I/O Braket, Upper Edge, Middle
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -3, 2): glVertex3fv (vpciiobom#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, -3, 2): glVertex3fv (vpciiobim#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, -3, 2): glVertex3fv (vpciiobim#(3))
            glColor3f (.3,.3,.3): glNormal3f(0, -3, 2): glVertex3fv (vpciiobom#(3))
        glEnd ()
        ' PCI I/O Braket, Upper Edge, Connect Up and Middle
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpciiobou#(3))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpciiobiu#(3))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpciiobim#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, 0, 1): glVertex3fv (vpciiobom#(2))
        glEnd ()
        ' PCI I/O Braket, Bottom Edge, Up
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, -1, -1): glVertex3fv (vpciiobou#(1))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, -1): glVertex3fv (vpciiobou#(4))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, -1): glVertex3fv (vpciiobiu#(4))
            glColor3f (.3,.3,.3): glNormal3f(0, -1, -1): glVertex3fv (vpciiobiu#(1))
        glEnd ()
        ' PCI I/O Braket, Upper Edge, Up
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 1): glVertex3fv (vpciiobou#(2))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 1): glVertex3fv (vpciiobou#(3))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 1): glVertex3fv (vpciiobiu#(3))
            glColor3f (.3,.3,.3): glNormal3f(0, 1, 1): glVertex3fv (vpciiobiu#(2))
        glEnd ()
        ' PCI I/O Bracket, Inside, Up
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobiu#(1))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobiu#(2))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobiu#(3))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobiu#(4))
        glEnd ()
        ' PCI I/O Bracket, Inside, Middle
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobim#(1))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobim#(2))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobim#(3))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobim#(4))
        glEnd ()
        ' PCI I/O Bracket, Inside, Connect Up and Middle Section
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobiu#(4))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobiu#(3))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobim#(2))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobim#(1))
        glEnd ()
        ' PCI I/O Bracket, Inside, Bottom
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobib#(1))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobib#(2))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobib#(3))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobib#(4))
        glEnd ()
        ' PCI I/O Bracket, Inside, Connect Middle and Bottom Section
        glBegin (GL_QUADS)
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobim#(4))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobim#(3))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobib#(2))
            glColor3f (.3,.3,.3): glNormal3f(1, 0, 0): glVertex3fv (vpciiobib#(1))
        glEnd ()
        ' PCI I/O Bracket, Outside, Up
        
        glEnable(GL_CULL_FACE) ' Enable Culling, removing one side of a face
        glCullFace(GL_FRONT)   ' Remove one side of Face making it transparent 
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(15))
        glBegin (GL_QUADS)
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(0,0): glVertex3fv (vpciiobou#(1))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(0,1): glVertex3fv (vpciiobou#(2))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(1,1): glVertex3fv (vpciiobou#(3))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(1,0): glVertex3fv (vpciiobou#(4))
        glEnd ()
        glDisable(GL_CULL_FACE)
        
        ' PCI I/O Bracket, Outside, Middle

        glEnable(GL_CULL_FACE)
        glCullFace(GL_FRONT)
        glBindTexture (GL_TEXTURE_2D, textures(15))
        glBegin (GL_QUADS)
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(0,0): glVertex3fv (vpciiobom#(1))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(0,1): glVertex3fv (vpciiobom#(2))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(1,1): glVertex3fv (vpciiobom#(3))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(1,0): glVertex3fv (vpciiobom#(4))
        glEnd ()
        glDisable(GL_CULL_FACE)
        ' PCI I/O Bracket, Outside, Connect Up and Middle Section
        
        glBindTexture (GL_TEXTURE_2D, textures(14))
        glEnable(GL_CULL_FACE)
        glCullFace(GL_FRONT)
        glBegin (GL_QUADS)
            glColor3f (1,1,1): glNormal3f(-1, 0, 0):glTexCoord2f(0,0): glVertex3fv (vpciiobou#(4))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0):glTexCoord2f(0,1): glVertex3fv (vpciiobou#(3))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0):glTexCoord2f(1,1): glVertex3fv (vpciiobom#(2))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0):glTexCoord2f(1,0): glVertex3fv (vpciiobom#(1))
        glEnd ()
        glDisable(GL_CULL_FACE)
        ' PCI I/O Bracket, Outside, Bottom
        glEnable(GL_CULL_FACE)
        glCullFace(GL_FRONT)
        glBindTexture (GL_TEXTURE_2D, textures(15))
        glBegin (GL_QUADS)
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(0,0): glVertex3fv (vpciiobob#(1))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(0,1): glVertex3fv (vpciiobob#(2))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(1,1): glVertex3fv (vpciiobob#(3))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(1,0):glVertex3fv (vpciiobob#(4))
        glEnd ()
        glDisable(GL_CULL_FACE)
        ' PCI I/O Bracket, Outside, Connect Middle and Bottom Section
        glEnable(GL_CULL_FACE)
        glCullFace(GL_FRONT)
        glBindTexture (GL_TEXTURE_2D, textures(15))
        glBegin (GL_QUADS)
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(0,0): glVertex3fv (vpciiobom#(4))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(0,1): glVertex3fv (vpciiobom#(3))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(1,1): glVertex3fv (vpciiobob#(2))
            glColor3f (1,1,1): glNormal3f(-1, 0, 0): glTexCoord2f(1,0): glVertex3fv (vpciiobob#(1))
        glEnd ()
        glDisable(GL_CULL_FACE)
        glDisable (GL_TEXTURE_2D)
        glPopMatrix ()
        '----------------------------------------------------------------------------------------' 
        ' VGA Connector Position

        for vga_pos = 1 to 2
                glPushMatrix ()
            if vga_pos = 1 then glTranslatef (-104, -1, 1): vga_color#(3) = vga_color#(1) endif
            if vga_pos = 2 then glTranslatef (-104, -37, 1): vga_color#(3) = vga_color#(2) endif 

        '---------------------------------------------------------------------------------------'
        ' VGA Port Internal Middle Forward Backside
        glBegin (GL_QUADS) 
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapite#(4))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapite#(3))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapit#(2))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapit#(1))    
        glEnd ()
        ' VGA Port Internal Upper Forward Backside Corner
        glBegin (GL_QUADS) 
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapitufe#(2))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapiuhs#(3))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapit#(2))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapite#(3))
        glEnd ()
        ' VGA Port Internal Bottom Forward Backside Corner
        glBegin (GL_QUADS) 
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapitbfe#(2))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapibhs#(3))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapit#(1))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapite#(4))
        glEnd ()
        ' VGA Port Internal Upper Forward Backside
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapitufe#(2))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapiuhs#(3))   
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapiuhs#(4))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapius#(3))
        glEnd ()
        ' VGA Port Internal Bottom Forward Backside
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapitbfe#(2))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapibhs#(3))   
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapibhs#(4))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapibs#(3))
        glEnd ()
        ' VGA Port Internal Upper Forward Slope 
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapite#(3))       
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapite#(2))
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapitufe#(1))
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapitufe#(2))
        glEnd ()
        ' VGA Port Internal Bottom Forward Slope 
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapite#(4))       
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapite#(1))
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapitbfe#(1))
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapitbfe#(2))
        glEnd ()
        ' VGA Port Internal Bottom Forward Edge
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapitbfe#(1))
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapitbfe#(2)) 
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapibs#(3))
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapibs#(4))
        glEnd ()
        ' VGA Port Internal Upper Forward Edge
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapitufe#(1))
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapitufe#(2))
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapius#(3))
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapius#(4))
        glEnd ()
         ' VGA Port Internal Top Upper Slope
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapit#(2))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapit#(3))
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapiuhs#(2))
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapiuhs#(3))
        glEnd ()       
        ' VGA Port Internal Top Bottom Slope
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapit#(1))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapit#(4))
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 00): glVertex3fv (vvgapibhs#(2))
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapibhs#(3))
        glEnd ()
        ' VGA Backside Upper Middle Side 
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapit#(4))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapit#(3))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapiuhs#(2))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapibhs#(2))
        glEnd ()
        ' VGA Backside Center Middle Side 
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapibhs#(1))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapibhs#(2))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapiuhs#(2))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapiuhs#(1))
        glEnd ()
        ' VGA Backside Lower Middle Side 
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapibs#(1))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapibhs#(1))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapiuhs#(1))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapius#(1))
        glEnd ()
        ' VGA Backside Upper Side
        glBegin (GL_TRIANGLES)
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapibs#(1))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapibs#(2))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapibhs#(1))
        glEnd ()
        ' VGA Backside Bottom Side
        glBegin (GL_TRIANGLES)
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapius#(1))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapius#(2))
            glColor3fv (vga_color#(3)): glNormal3f(1, 0, 0): glVertex3fv (vvgapiuhs#(1))
        glEnd ()
        if anglex# <= 90 and anglex# >= 0 or anglex# <= 360 and anglex# >= 270 then
                ' VGA Port Internal Top Forward Edge
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapite#(1))       
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapite#(2))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapite#(3))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapite#(4))       
        glEnd ()
        ' VGA Port Internal Top
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapit#(1))       
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapit#(2))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapit#(3))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapit#(4))       
        glEnd ()
     
        ' VGA Port Internal Fitting Upper Top Side
         glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapius#(2))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapius#(3))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapiuhs#(4))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapiuhs#(1))
        glEnd ()
        ' VGA Port Internal Fitting Bottom Top Side
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapibs#(2))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapibs#(3))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapibhs#(4))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, 1): glVertex3fv (vvgapibhs#(1))
        glEnd ()
        endif
        ' VGA Port Internal Fitting Upper High Side
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapiuhs#(1))
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapiuhs#(2))
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapiuhs#(3))
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapiuhs#(4))
        glEnd ()
        ' VGA Port Internal Fitting Bottom High Side
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapibhs#(1))
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapibhs#(2))   
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapibhs#(3))  
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapibhs#(4))    
        glEnd ()
        ' VGA Port Internal Fitting Bottom Side
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapibs#(1))
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapibs#(2))
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapibs#(3)) 
            glColor3fv (vga_color#(3)): glNormal3f(0, -1, 0): glVertex3fv (vvgapibs#(4))
        glEnd ()
        ' VGA Port Internal Fitting Upper Side 

        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapius#(1))
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapius#(2))
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapius#(3))
            glColor3fv (vga_color#(3)): glNormal3f(0, 1, 0): glVertex3fv (vvgapius#(4))
        glEnd ()
        ' VGA Port Internal Bottom
        if anglex# >= 90 and anglex# <= 270 then
'       if anglex# > 135 and anglex# < 225 then ' for testing only
        glBegin (GL_QUADS)
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, -1): glVertex3fv (vvgapius#(1))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, -1): glVertex3fv (vvgapius#(4))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, -1): glVertex3fv (vvgapibs#(4))
            glColor3fv (vga_color#(3)): glNormal3f(0, 0, -1): glVertex3fv (vvgapibs#(1))
        glEnd ()
        endif
        glPopMatrix ()
        next

        '-------------------------------------------------------------------------------------------'
        ' PCB Bottom 
        if anglex# > 90 and anglex# < 270 then
 '       if anglex# > 135 and anglex# < 215 then ' for testing only
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(5))
        glBegin (GL_QUADS)
            glColor3f (1,1,1):glTexCoord2f (0,0): glNormal3f(0, 0, -1): glVertex3fv (vpcbt#(1))
            glColor3f (1,1,1):glTexCoord2f (1,0): glNormal3f(0, 0, -1): glVertex3fv (vpcbt#(2))
            glColor3f (1,1,1):glTexCoord2f (1,1): glNormal3f(0, 0, -1): glVertex3fv (vpcbt#(3))
            glColor3f (1,1,1):glTexCoord2f (0,1): glNormal3f(0, 0, -1): glVertex3fv (vpcbt#(4))
        glEnd ()
        glDisable (GL_TEXTURE_2D)
        endif
        ' 
        if anglex# <= 90 and anglex# >= 0 or anglex# <= 360 and anglex# >= 270 then
'        if anglex# <= 45 and anglex# >= 0 or anglex# <= 360 and anglex# >= 315 then  ' for testing only
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(2))
        glBegin (GL_QUADS)
            glColor3f (1,1,1):glTexCoord2f (0,1): glNormal3f(0, 0, 1): glVertex3fv (vpcbb#(1))
            glColor3f (1,1,1):glTexCoord2f (1,1): glNormal3f(0, 0, 1): glVertex3fv (vpcbb#(2))
            glColor3f (1,1,1):glTexCoord2f (1,0): glNormal3f(0, 0, 1): glVertex3fv (vpcbb#(3))
            glColor3f (1,1,1):glTexCoord2f (0,0): glNormal3f(0, 0, 1): glVertex3fv (vpcbb#(4))
        glEnd ()
        glDisable (GL_TEXTURE_2D)
        endif
        ' PCB Top Edge
        glBegin (GL_QUADS)
            glColor3f (.05,.28,.12): glNormal3f(0, 1, 0): glVertex3fv (vpcbt#(1))
            glColor3f (.05,.28,.12): glNormal3f(0, 1, 0): glVertex3fv (vpcbt#(2))
            glColor3f (.05,.28,.12): glNormal3f(0, 1, 0): glVertex3fv (vpcbb#(2))
            glColor3f (.05,.28,.12): glNormal3f(0, 1, 0): glVertex3fv (vpcbb#(1))
        glEnd ()
        ' PCB Back Edge
        glBegin (GL_QUADS)
            glColor3f (.05,.28,.12): glNormal3f(1, 0, 0): glVertex3fv (vpcbt#(2))
            glColor3f (.05,.28,.12): glNormal3f(1, 0, 0): glVertex3fv (vpcbb#(2))
            glColor3f (.05,.28,.12): glNormal3f(1, 0, 0): glVertex3fv (vpcbb#(3))
            glColor3f (.05,.28,.12): glNormal3f(1, 0, 0): glVertex3fv (vpcbt#(3))
        glEnd ()
        ' PCB Forward Edge
        glBegin (GL_QUADS)
            glColor3f (.05,.28,.12): glNormal3f(-1, 0, 0): glVertex3fv (vpcbt#(1))
            glColor3f (.05,.28,.12): glNormal3f(-1, 0, 0): glVertex3fv (vpcbb#(1))
            glColor3f (.05,.28,.12): glNormal3f(-1, 0, 0): glVertex3fv (vpcbb#(4))
            glColor3f (.05,.28,.12): glNormal3f(-1, 0, 0): glVertex3fv (vpcbt#(4))
        glEnd ()
        ' PCB bottom edge
        glEnable(GL_CULL_FACE) ' Enable Culling, removing one side of a face
        glCullFace(GL_FRONT)   ' Remove one side of Face making it transparent
        glBegin (GL_QUADS)
            glColor3f (.05,.28,.12): glNormal3f(0, -1, 0): glVertex3fv (vpcbt#(3))
            glColor3f (.05,.28,.12): glNormal3f(0, -1, 0): glVertex3fv (vpcbt#(4))
            glColor3f (.05,.28,.12): glNormal3f(0, -1, 0): glVertex3fv (vpcbb#(4))
            glColor3f (.05,.28,.12): glNormal3f(0, -1, 0): glVertex3fv (vpcbb#(3))
        glEnd ()
        glDisable(GL_CULL_FACE)

        '-----------------------------------------------------------------------------------------------'
        ' PCI Connector Bottom Long
        if anglex# > 90 and anglex# < 270 then
'        if anglex# > 135 and anglex# < 215 then
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(7))
        glBegin (GL_QUADS)
            glColor3f (1,1,1):glTexCoord2f (0,1): glNormal3f(0, 0, -1): glVertex3fv (vpcitl#(1))
            glColor3f (1,1,1):glTexCoord2f (1,1): glNormal3f(0, 0, -1): glVertex3fv (vpcitl#(2))
            glColor3f (1,1,1):glTexCoord2f (1,0):: glNormal3f(0, 0, -1): glVertex3fv (vpcitl#(3))
            glColor3f (1,1,1):glTexCoord2f (0,0): glNormal3f(0, 0, -1): glVertex3fv (vpcitl#(4))
        glEnd ()
        glDisable (GL_TEXTURE_2D)
        endif
        ' PCI Connector Top Long 
        if anglex# <= 90 and anglex# >= 0 or anglex# <= 360 and anglex# >= 270 then
'        if anglex# <= 45 and anglex# >= 0 or anglex# <= 360 and anglex# >= 315 then  ' for testing only
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(7))
        glBegin (GL_QUADS)
            glColor3f (1,1,1):glTexCoord2f (0,1): glNormal3f(0, 0, 1): glVertex3fv (vpcibl#(1))
            glColor3f (1,1,1):glTexCoord2f (1,1): glNormal3f(0, 0, 1): glVertex3fv (vpcibl#(2))
            glColor3f (1,1,1):glTexCoord2f (1,0): glNormal3f(0, 0, 1): glVertex3fv (vpcibl#(3))
            glColor3f (1,1,1):glTexCoord2f (0,0): glNormal3f(0, 0, 1): glVertex3fv (vpcibl#(4))
        glEnd ()
        glDisable (GL_TEXTURE_2D)  
        endif
        ' PCI Connector Long, Forward Edge
        glBegin (GL_QUADS)      
            glColor3f (.64,.44,.13): glNormal3f(-1, 0, 0): glVertex3fv (vpcitl#(1))
            glColor3f (.64,.44,.13): glNormal3f(-1, 0, 0): glVertex3fv (vpcitl#(4))
            glColor3f (.64,.44,.13): glNormal3f(-1, 0, 0): glVertex3fv (vpcibl#(4))
            glColor3f (.64,.44,.13): glNormal3f(-1, 0, 0): glVertex3fv (vpcibl#(1))
        glEnd ()
        ' PCI Connector Long, Back Edge
        glBegin (GL_QUADS)      
            glColor3f (.64,.44,.13): glNormal3f(1, 0, 0): glVertex3fv (vpcitl#(2))
            glColor3f (.64,.44,.13): glNormal3f(1, 0, 0): glVertex3fv (vpcitl#(3))
            glColor3f (.64,.44,.13): glNormal3f(1, 0, 0): glVertex3fv (vpcibl#(3))
            glColor3f (.64,.44,.13): glNormal3f(1, 0, 0): glVertex3fv (vpcibl#(2))
        glEnd ()
        ' PCI Connector Long, Bottom Edge
        glBegin (GL_QUADS)      
            glColor3f (.64,.44,.13): glNormal3f(0, -1, 0): glVertex3fv (vpcitl#(3))
            glColor3f (.64,.44,.13): glNormal3f(0, -1, 0): glVertex3fv (vpcitl#(4))
            glColor3f (.64,.44,.13): glNormal3f(0, -1, 0): glVertex3fv (vpcibl#(4))
            glColor3f (.64,.44,.13): glNormal3f(0, -1, 0): glVertex3fv (vpcibl#(3))
        glEnd ()  

        '-----------------------------------------------------------------------------------------'
        ' PCI Connector Bottom Short
        if anglex# > 90 and anglex# < 270 then
'        if anglex# > 135 and anglex# < 215 then
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(8))
        glBegin (GL_QUADS)
            glColor3f (1,1,1):glTexCoord2f (0,1): glNormal3f(0, 0, -1): glVertex3fv (vpcits#(1))
            glColor3f (1,1,1):glTexCoord2f (1,1): glNormal3f(0, 0, -1): glVertex3fv (vpcits#(2))
            glColor3f (1,1,1):glTexCoord2f (1,0): glNormal3f(0, 0, -1): glVertex3fv (vpcits#(3))
            glColor3f (1,1,1):glTexCoord2f (0,0): glNormal3f(0, 0, -1): glVertex3fv (vpcits#(4))
        glEnd ()
        glDisable (GL_TEXTURE_2D)
        endif
        ' PCI Connector Top Short 
        if anglex# <= 90 and anglex# >= 0 or anglex# <= 360 and anglex# >= 270 then
'        if anglex# <= 45 and anglex# >= 0 or anglex# <= 360 and anglex# >= 315 then  ' for testing only
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(8))
        glBegin (GL_QUADS)
            glColor3f (1,1,1):glTexCoord2f (0,1): glNormal3f(0, 0, 1): glVertex3fv (vpcibs#(1))
            glColor3f (1,1,1):glTexCoord2f (1,1): glNormal3f(0, 0, 1): glVertex3fv (vpcibs#(2))
            glColor3f (1,1,1):glTexCoord2f (1,0): glNormal3f(0, 0, 1): glVertex3fv (vpcibs#(3))
            glColor3f (1,1,1):glTexCoord2f (0,0): glNormal3f(0, 0, 1): glVertex3fv (vpcibs#(4))
        glEnd ()
        glDisable (GL_TEXTURE_2D)
        endif
        ' PCI Connector Short, Forward Edge
        glBegin (GL_QUADS)      
            glColor3f (.64,.44,.13): glNormal3f(-1, 0, 0): glVertex3fv (vpcits#(1))
            glColor3f (.64,.44,.13): glNormal3f(-1, 0, 0): glVertex3fv (vpcits#(4))
            glColor3f (.64,.44,.13): glNormal3f(-1, 0, 0): glVertex3fv (vpcibs#(4))
            glColor3f (.64,.44,.13): glNormal3f(-1, 0, 0): glVertex3fv (vpcibs#(1))
        glEnd ()
        ' PCI Connector Short, Back Edge
        glBegin (GL_QUADS)      
            glColor3f (.64,.44,.13): glNormal3f(1, 0, 0): glVertex3fv (vpcits#(2))
            glColor3f (.64,.44,.13): glNormal3f(1, 0, 0): glVertex3fv (vpcits#(3))
            glColor3f (.64,.44,.13): glNormal3f(1, 0, 0): glVertex3fv (vpcibs#(3))
            glColor3f (.64,.44,.13): glNormal3f(1, 0, 0): glVertex3fv (vpcibs#(2))
        glEnd ()
        ' PCI Connector Short, Bottom Edge
        glBegin (GL_QUADS)      
            glColor3f (.64,.44,.13): glNormal3f(0, -1, 0): glVertex3fv (vpcits#(3))
            glColor3f (.64,.44,.13): glNormal3f(0, -1, 0): glVertex3fv (vpcits#(4))
            glColor3f (.64,.44,.13): glNormal3f(0, -1, 0): glVertex3fv (vpcibs#(4))
            glColor3f (.64,.44,.13): glNormal3f(0, -1, 0): glVertex3fv (vpcibs#(3))
        glEnd ()
                
        '--------------------------------------------------------------------------------------------'
        ' RAMDAC Top Flat
        
        
        glPushMatrix ()
        glTranslatef (-67, -16, 1)
        if anglex# <= 90 and anglex# >= 0 or anglex# <= 360 and anglex# >= 270 then 
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(4))
         glBegin (GL_QUADS)      
            glTexCoord2f (0,0): glColor3f (.34,.34,.34): glNormal3f(0, 0, 1): glVertex3fv (vramdact#(1))
            glTexCoord2f (-1,0): glColor3f (.34,.34,.34): glNormal3f(0, 0, 1): glVertex3fv (vramdact#(2))
            glTexCoord2f (-1,1): glColor3f (.34,.34,.34): glNormal3f(0, 0, 1): glVertex3fv (vramdact#(3))
            glTexCoord2f (0,1): glColor3f (.34,.34,.34): glNormal3f(0, 0, 1): glVertex3fv (vramdact#(4))
        glEnd()
        glDisable (GL_TEXTURE_2D)
        endif
        ' RAMDAC Top Slope
        glBegin (GL_QUADS)      
            glColor3f (.13,.13,.13): glNormal3f(0, -1, 1): glVertex3fv (vramdact#(4))
            glColor3f (.13,.13,.13): glNormal3f(0, -1, 1): glVertex3fv (vramdact#(3))
            glColor3f (.13,.13,.13): glNormal3f(0, -1, 1): glVertex3fv (vramdact#(5))
            glColor3f (.13,.13,.13): glNormal3f(0, -1, 1): glVertex3fv (vramdact#(6))
        glEnd()
        ' RAMDAC Upper Edge
        glBindTexture (GL_TEXTURE_2D, textures(10))
        glEnable (GL_TEXTURE_2D)
        glBegin (GL_QUADS)      
            glColor3f (1,1,1): glTexCoord2f (0,0): glNormal3f(0, 1, 0): glVertex3fv (vramdacs#(1))
            glColor3f (1,1,1): glTexCoord2f (2,0): glNormal3f(0, 1, 0): glVertex3fv (vramdacs#(2))
            glColor3f (1,1,1): glTexCoord2f (2,.95): glNormal3f(0, 1, 0): glVertex3fv (vramdact#(2))
            glColor3f (1,1,1): glTexCoord2f (0,.95): glNormal3f(0, 1, 0): glVertex3fv (vramdact#(1))
        glEnd()
        ' RAMDAC Rigth Edge
        glBegin (GL_QUADS)      
            glColor3f (1,1,1): glTexCoord2f (0,0): glNormal3f(1, 0, 0): glVertex3fv (vramdacs#(2))
            glColor3f (1,1,1): glTexCoord2f (2.1,0): glNormal3f(1, 0, 0): glVertex3fv (vramdacs#(3))
            glColor3f (1,1,1): glTexCoord2f (2.1,.95): glNormal3f(1, 0, 0): glVertex3fv (vramdact#(3))
            glColor3f (1,1,1): glTexCoord2f (0,.95): glNormal3f(1, 0, 0): glVertex3fv (vramdact#(2))
        glEnd()
        glDisable (GL_TEXTURE_2D)
        ' RAMDAC Rigth Bottom Corner Edge
        glBegin (GL_QUADS)      
            glColor3f (.13,.13,.13): glNormal3f(1, -1, 0): glVertex3fv (vramdacs#(3))
            glColor3f (.13,.13,.13): glNormal3f(1, -1, 0): glVertex3fv (vramdacs#(5))
            glColor3f (.13,.13,.13): glNormal3f(1, -1, 0): glVertex3fv (vramdact#(5))
            glColor3f (.13,.13,.13): glNormal3f(1, -1, 0): glVertex3fv (vramdact#(3))
        glEnd()
        ' RAMDAC Bottom Edge
        glEnable (GL_TEXTURE_2D)
        glBegin (GL_QUADS)      
            glColor3f (1,1,1): glTexCoord2f (2.1,.6): glNormal3f(0, -1, 0): glVertex3fv (vramdact#(6))
            glColor3f (1,1,1): glTexCoord2f (0,.6): glNormal3f(0, -1, 0): glVertex3fv (vramdact#(5))
            glColor3f (1,1,1): glTexCoord2f (0,0): glNormal3f(0, -1, 0): glVertex3fv (vramdacs#(5))
            glColor3f (1,1,1): glTexCoord2f (2.1,0): glNormal3f(0, -1, 0): glVertex3fv (vramdacs#(6))
        glEnd() 
        glDisable (GL_TEXTURE_2D)
        ' RAMDAC Left Bottom Corner Edge
        glBegin (GL_QUADS)      
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, 0): glVertex3fv (vramdact#(6))
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, 0): glVertex3fv (vramdact#(4))
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, 0): glVertex3fv (vramdacs#(4))
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, 0): glVertex3fv (vramdacs#(6))
        glEnd()
        ' RAMDAC Left Edge
        glEnable (GL_TEXTURE_2D)
        glBegin (GL_QUADS)      
            glColor3f (1,1,1): glTexCoord2f (1.95,.95): glNormal3f(-1, 0, 0): glVertex3fv (vramdact#(4))
            glColor3f (1,1,1): glTexCoord2f (0,.95): glNormal3f(-1, 0, 0): glVertex3fv (vramdact#(1))
            glColor3f (1,1,1): glTexCoord2f (0,0): glNormal3f(-1, 0, 0): glVertex3fv (vramdacs#(1))
            glColor3f (1,1,1): glTexCoord2f (1.95,0): glNormal3f(-1, 0, 0): glVertex3fv (vramdacs#(4))
        glEnd()
        glDisable (GL_TEXTURE_2D)

        glPopMatrix ()

        '----------------------------------------------------------------------------------------------'
        ' 3Dfx Chip Position
        
        for x3dfx_chip_pos = 1 to 3
                glEnable (GL_TEXTURE_2D)
                glPushMatrix ()
            if x3dfx_chip_pos = 1 then
                glTranslatef (2, -2, 0): glBindTexture (GL_TEXTURE_2D, textures(1)): chip_pin_texture = 8
            endif
            if x3dfx_chip_pos = 2 then
                glTranslatef (-41, 37, 0): glBindTexture (GL_TEXTURE_2D, textures(6)): chip_pin_texture = 6
            endif 
            if x3dfx_chip_pos = 3 then
                glTranslatef (42, 37, 0): glBindTexture (GL_TEXTURE_2D, textures(6)): chip_pin_texture = 6
            endif
        '----------------------------------------------------------------------------------------------'
        ' 3Dfx Chip Top    
        if anglex# <= 90 and anglex# >= 0 or anglex# <= 360 and anglex# >= 270 then
        glBegin (GL_QUADS)
            glTexCoord2f (0,0.95): glColor3f (.34,.34,.34): glNormal3f(0, 0, 1): glVertex3fv (v3dfxct#(8))
            glTexCoord2f (1,.95): glColor3f (.34,.34,.34): glNormal3f(0, 0, 1): glVertex3fv (v3dfxct#(3)) 
            glTexCoord2f (1,.05): glColor3f (.34,.34,.34): glNormal3f(0, 0, 1): glVertex3fv (v3dfxct#(4))
            glTexCoord2f (0,.05): glColor3f (.34,.34,.34): glNormal3f(0, 0, 1): glVertex3fv (v3dfxct#(7))
        glEnd()
        glDisable (GL_TEXTURE_2D) 
        glBegin (GL_QUADS)      
            glColor3f (.13,.13,.13): glNormal3f(0, 0, 1): glVertex3fv (v3dfxct#(1))
            glColor3f (.13,.13,.13): glNormal3f(0, 0, 1): glVertex3fv (v3dfxct#(2))
            glColor3f (.13,.13,.13): glNormal3f(0, 0, 1): glVertex3fv (v3dfxct#(3))
            glColor3f (.13,.13,.13): glNormal3f(0, 0, 1): glVertex3fv (v3dfxct#(8))
        glEnd()
        glBegin (GL_QUADS)
            glColor3f (.13,.13,.13): glNormal3f(0, 0, 1): glVertex3fv (v3dfxct#(7))
            glColor3f (.13,.13,.13): glNormal3f(0, 0, 1): glVertex3fv (v3dfxct#(4))
            glColor3f (.13,.13,.13): glNormal3f(0, 0, 1): glVertex3fv (v3dfxct#(5))
            glColor3f (.13,.13,.13): glNormal3f(0, 0, 1): glVertex3fv (v3dfxct#(6))
        glEnd ()
         endif
            
        '----------------------------------------------------------------------------------------------------'
        ' 3Dfx Chip Upper Edge 
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(10))
        glBegin (GL_QUADS)
            glColor3f (1,1,1): glTexCoord2f (0,.95): glNormal3f(0, 1, 0): glVertex3fv (v3dfxct#(1))
            glColor3f (1,1,1): glTexCoord2f (0,0): glNormal3f(0, 1, 0): glVertex3fv (v3dfxcs#(1))
            glColor3f (1,1,1): glTexCoord2f (chip_pin_texture,0): glNormal3f(0, 1, 0): glVertex3fv (v3dfxcs#(2))
            glColor3f (1,1,1): glTexCoord2f (chip_pin_texture,.95): glNormal3f(0, 1, 0): glVertex3fv (v3dfxct#(2))
        glEnd()
        glDisable (GL_TEXTURE_2D)
        ' 3Dfx Chip Upper Rigth Corner Edge 
        glBegin (GL_QUADS)      
            glColor3f (.13,.13,.13): glNormal3f(1, 1, 0): glVertex3fv (v3dfxct#(2))
            glColor3f (.13,.13,.13): glNormal3f(1, 1, 0): glVertex3fv (v3dfxcs#(2))
            glColor3f (.13,.13,.13): glNormal3f(1, 1, 0): glVertex3fv (v3dfxcs#(3))
            glColor3f (.13,.13,.13): glNormal3f(1, 1, 0): glVertex3fv (v3dfxct#(3))
        glEnd()
        ' 3Dfx Chip Rigth Edge
        glEnable (GL_TEXTURE_2D)
        glBegin (GL_QUADS)      
            glColor3f (1,1,1): glTexCoord2f (0,.95): glNormal3f(1, 0, 0): glVertex3fv (v3dfxct#(3))
            glColor3f (1,1,1): glTexCoord2f (0,0): glNormal3f(1, 0, 0): glVertex3fv (v3dfxcs#(3))
            glColor3f (1,1,1): glTexCoord2f (chip_pin_texture,0): glNormal3f(1, 0, 0): glVertex3fv (v3dfxcs#(4))
            glColor3f (1,1,1): glTexCoord2f (chip_pin_texture,.95): glNormal3f(1, 0, 0): glVertex3fv (v3dfxct#(4))
        glEnd()
        glDisable (GL_TEXTURE_2D)
        ' 3Dfx Chip Bottom Rigth Edge 
        glBegin (GL_QUADS)      
            glColor3f (.13,.13,.13): glNormal3f(1, -1, 0): glVertex3fv (v3dfxct#(4))
            glColor3f (.13,.13,.13): glNormal3f(1, -1, 0): glVertex3fv (v3dfxcs#(4))
            glColor3f (.13,.13,.13): glNormal3f(1, -1, 0): glVertex3fv (v3dfxcs#(5))
            glColor3f (.13,.13,.13): glNormal3f(1, -1, 0): glVertex3fv (v3dfxct#(5))
        glEnd()
        ' 3Dfx Chip Bottom Edge 
        glEnable (GL_TEXTURE_2D)
        glBegin (GL_QUADS)      
            glColor3f (1,1,1): glTexCoord2f (0,.95): glNormal3f(0, -1, 0): glVertex3fv (v3dfxct#(5))
            glColor3f (1,1,1): glTexCoord2f (0,0): glNormal3f(0, -1, 0): glVertex3fv (v3dfxcs#(5))
            glColor3f (1,1,1): glTexCoord2f (chip_pin_texture,0): glNormal3f(0, -1, 0): glVertex3fv (v3dfxcs#(6))
            glColor3f (1,1,1): glTexCoord2f (chip_pin_texture,.95): glNormal3f(0, -1, 0): glVertex3fv (v3dfxct#(6))
        glEnd()
        glDisable (GL_TEXTURE_2D)
        ' 3Dfx Chip Bottom Left Corner Edge 
        glBegin (GL_QUADS)      
            glColor3f (.13,.13,.13): glNormal3f(-1, -1, 0): glVertex3fv (v3dfxct#(6))
            glColor3f (.13,.13,.13): glNormal3f(-1, -1, 0): glVertex3fv (v3dfxcs#(6))
            glColor3f (.13,.13,.13): glNormal3f(-1, -1, 0): glVertex3fv (v3dfxcs#(7))
            glColor3f (.13,.13,.13): glNormal3f(-1, -1, 0): glVertex3fv (v3dfxct#(7))
        glEnd()
        ' 3Dfx Chip Left Edge 
        glEnable (GL_TEXTURE_2D)
        glBegin (GL_QUADS)      
            glColor3f (1,1,1): glTexCoord2f (0,.95): glNormal3f(-1, 0, 0): glVertex3fv (v3dfxct#(7))
            glColor3f (1,1,1): glTexCoord2f (0,0): glNormal3f(-1, 0, 0): glVertex3fv (v3dfxcs#(7))
            glColor3f (1,1,1): glTexCoord2f (chip_pin_texture,0): glNormal3f(-1, 0, 0): glVertex3fv (v3dfxcs#(8))
            glColor3f (1,1,1): glTexCoord2f (chip_pin_texture,.95): glNormal3f(-1, 0, 0): glVertex3fv (v3dfxct#(8))
        glEnd()
        glDisable (GL_TEXTURE_2D)
        ' 3Dfx Chip Top  Left Corner Edge 
        glBegin (GL_QUADS)      
            glColor3f (.13,.13,.13): glNormal3f(-1, 1, 0): glVertex3fv (v3dfxct#(8))
            glColor3f (.13,.13,.13): glNormal3f(-1, 1, 0): glVertex3fv (v3dfxcs#(8))
            glColor3f (.13,.13,.13): glNormal3f(-1, 1, 0): glVertex3fv (v3dfxcs#(1))
            glColor3f (.13,.13,.13): glNormal3f(-1, 1, 0): glVertex3fv (v3dfxct#(1))
        glEnd()
        glPopMatrix ()
        next
        
        '----------------------------------------------------------------------------------------------------'
        ' EDO RAM Top Slope 
        
        for edo_ram_pos = 1 to 12
            glPushMatrix ()
            if edo_ram_pos = 2 then glTranslatef (0, 17, 0) endif 
            if edo_ram_pos = 3 then glTranslatef (0, 49, 0) endif 
            if edo_ram_pos = 4 then glTranslatef (0, 63, 0) endif
            if edo_ram_pos = 5 then glTranslatef (0, 77, 0) endif
            if edo_ram_pos = 6 then glTranslatef (-30, 0, 0) endif
            if edo_ram_pos = 7 then glTranslatef (-30, 17, 0) endif
            if edo_ram_pos = 8 then glTranslatef (-30, 77, 0) endif
            if edo_ram_pos = 9 then glTranslatef (-82, 49, 0) endif
            if edo_ram_pos = 10 then glTranslatef (-82, 63, 0) endif
            if edo_ram_pos = 11 then glTranslatef (-82, 77, 0) endif
            if edo_ram_pos = 12 then glTranslatef (-112, 77, 0) endif 
        'EDO RAM Top Slope
        if anglex# <= 125 and anglex# >= 0 or anglex# <= 360 and anglex# >= 240 then
'       if anglex# <= 45 and anglex# >= 0 or anglex# <= 360 and anglex# >= 315 then  ' for testing only
        glBegin (GL_QUADS)      
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, 1): glVertex3fv (vedot#(1))
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, 1): glVertex3fv (vedot#(2))
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, 1): glVertex3fv (vedot#(3))
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, 1): glVertex3fv (vedot#(4))
        glEnd()
        endif
        ' EDO RAM Top
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(3))
        if anglex# <= 90 and anglex# >= 0 or anglex# <= 360 and anglex# >= 270 then
'       if anglex# <= 45 and anglex# >= 0 or anglex# <= 360 and anglex# >= 315 then  ' for testing only
        glBegin (GL_QUADS)      
            glColor3f (.34,.34,.34): glTexCoord2f (0,1): glNormal3f(0, 0, 1): glVertex3fv (vedot#(2))
            glColor3f (.34,.34,.34): glTexCoord2f (1,1): glNormal3f(0, 0, 1): glVertex3fv (vedot#(5))
            glColor3f (.34,.34,.34): glTexCoord2f (1,0): glNormal3f(0, 0, 1): glVertex3fv (vedot#(6))
            glColor3f (.34,.34,.34): glTexCoord2f (0,0): glNormal3f(0, 0, 1): glVertex3fv (vedot#(3))
        glEnd()
        glDisable (GL_TEXTURE_2D)
        endif
        ' EDO RAM Bottom Slope 
        if anglex# >= 55 and anglex# < 300 then
'       if anglex# <= 45 and anglex# >= 0 or anglex# <= 360 and anglex# >= 315 then  ' for testing only
        glBegin (GL_QUADS)      
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, -1): glVertex3fv (vedob#(1))
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, -1): glVertex3fv (vedob#(2))
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, -1): glVertex3fv (vedob#(3))
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, -1): glVertex3fv (vedob#(4))
        glEnd()
        endif
        ' EDO RAM Bottom 
        if anglex# >= 90 and anglex# <= 270 then
'       if anglex# > 135 and anglex# < 225 then ' for testing only
        glEnable (GL_TEXTURE_2D)
        glBindTexture (GL_TEXTURE_2D, textures(3))
        glBegin (GL_QUADS)      
            glColor3f (.3,.3,.3): glTexCoord2f (0,0): glNormal3f(0, 0, -1): glVertex3fv (vedob#(2))
            glColor3f (.3,.3,.3): glTexCoord2f (1,0): glNormal3f(0, 0, -1): glVertex3fv (vedob#(5))
            glColor3f (.3,.3,.3): glTexCoord2f (1,1): glNormal3f(0, 0, -1): glVertex3fv (vedob#(6))
            glColor3f (.3,.3,.3): glTexCoord2f (0,1): glNormal3f(0, 0, -1): glVertex3fv (vedob#(3))
        glEnd()
        glDisable (GL_TEXTURE_2D)
        endif
        ' EDO RAM Front Edge
        glBegin (GL_QUADS)
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, 0): glVertex3fv (vedot#(1))    
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, 0): glVertex3fv (vedot#(4))
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, 0): glVertex3fv (vedob#(4))
            glColor3f (.13,.13,.13): glNormal3f(-1, 0, 0): glVertex3fv (vedob#(1))
        glEnd()
        ' EDO RAM Upper Edge Slope
        glBegin (GL_QUADS)
            glColor3f (.13,.13,.13): glNormal3f(0, 1, 0): glVertex3fv (vedot#(1))    
            glColor3f (.13,.13,.13): glNormal3f(0, 1, 0): glVertex3fv (vedot#(2))
            glColor3f (.13,.13,.13): glNormal3f(0, 1, 0): glVertex3fv (vedob#(2))
            glColor3f (.13,.13,.13): glNormal3f(0, 1, 0): glVertex3fv (vedob#(1))
        glEnd()    
        ' EDO RAM Bottom Edge Slope
        glBegin (GL_QUADS)
            glColor3f (.13,.13,.13): glNormal3f(0, -1, 0): glVertex3fv (vedot#(3))    
            glColor3f (.13,.13,.13): glNormal3f(0, -1, 0): glVertex3fv (vedot#(4))
            glColor3f (.13,.13,.13): glNormal3f(0, -1, 0): glVertex3fv (vedob#(4))
            glColor3f (.13,.13,.13): glNormal3f(0, -1, 0): glVertex3fv (vedob#(3))
        glEnd()
        ' EDO RAM Upper Edge 
        glEnable (GL_TEXTURE_2D)
            glBindTexture (GL_TEXTURE_2D, textures(11))
            glBegin (GL_QUADS)
            glColor3f (1,1,1): glTexCoord2f (0,0): glNormal3f(0, 1, 0): glVertex3fv (vedot#(2))    
            glColor3f (1,1,1): glTexCoord2f (2.49,0): glNormal3f(0, 1, 0): glVertex3fv (vedot#(5))
            glColor3f (1,1,1): glTexCoord2f (2.49,1): glNormal3f(0, 1, 0): glVertex3fv (vedob#(5))
            glColor3f (1,1,1): glTexCoord2f (0,1): glNormal3f(0, 1, 0): glVertex3fv (vedob#(2))
        glEnd()
        ' EDO RAM Bottom Edge
        glBegin (GL_QUADS)
            glColor3f (1,1,1): glTexCoord2f (0,0): glNormal3f(0, -1, 0): glVertex3fv (vedot#(3))    
            glColor3f (1,1,1): glTexCoord2f (2.49,0): glNormal3f(0, -1, 0): glVertex3fv (vedot#(6))
            glColor3f (1,1,1): glTexCoord2f (2.49,1): glNormal3f(0, -1, 0): glVertex3fv (vedob#(6))
            glColor3f (1,1,1): glTexCoord2f (0,1): glNormal3f(0, -1, 0): glVertex3fv (vedob#(3))
        glEnd()
        glDisable (GL_TEXTURE_2D)
        ' EDO RAM Back Edge
        glBegin (GL_QUADS)
            glColor3f (.13,.13,.13): glNormal3f(1, 0, 0): glVertex3fv (vedot#(5))    
            glColor3f (.13,.13,.13): glNormal3f(1, 0, 0): glVertex3fv (vedot#(6))
            glColor3f (.13,.13,.13): glNormal3f(1, 0, 0): glVertex3fv (vedob#(6))
            glColor3f (.13,.13,.13): glNormal3f(1, 0, 0): glVertex3fv (vedob#(5))
        glEnd()
        glPopMatrix ()
        next
  
        ' Mouse control ----------------------------------------------------------------------         
        ' zoom with wheel
        zoom# = zoom# + Mouse_Wheel()*5
        if zoom# <= -65 then zoom# = -65 endif
        if zoom# >= 50 then zoom# = 50 endif
        
        'rotate card with mouse holding down button 1
        MX# =  Mouse_YD()
        MZ# =  Mouse_XD()
        if Mouse_Button(MOUSE_LBUTTON) then
        demomode = 0
        anglex# = anglex# + MX# * 75
        anglez# = anglez# + MZ# * 75
        demo_countdown = 0
        endif
    
        ' calculate fps
        fps# = fps# + 1
        if _1sec_timer = 1 then fps2# = fps#: _1sec_timer = 0: fps# = 0 endif 
    drawtext()
    SwapBuffers ()
wend