home *** CD-ROM | disk | FTP | other *** search
/ CD-X 3 / cdx_03.iso / democomp / demo / _2complx.arj / 2CLX-SRC.ZIP / TEXTNEW / DRAW.ASM next >
Encoding:
Assembly Source File  |  1995-11-10  |  4.7 KB  |  211 lines

  1. DRAW:   PUSH    CS
  2.         POP     ES
  3.         PUSH    @DATA
  4.         POP     DS
  5.         MOV     AX,CS:TEXTBUFF
  6.         MOV     GS,AX
  7.         MOV     AX,ViSFACES
  8.         MOV     N,AX
  9.         MOV     Si,OFFSET ORDER
  10. NEXTFACE:
  11.         LODSW
  12.         ADD     Si,2
  13.         PUSH    Si
  14.         MOV     Si,AX
  15.         MOV     Di,OFFSET CS:POiNTBUF
  16.         MOV     BP,0
  17. DiSP:   MOV     CX,0
  18. NEXTVERTiCE:
  19.         iNC     CX
  20.         LODSW
  21.         MOV     BX,AX
  22.         SHL     BX,2
  23.         PUSH    AX
  24.         MOV     AX,C_COORD[BX+2]
  25.         MOV     DX,AX
  26.         MOV     AX,C_COORD[BX+4]
  27.         STOSW
  28.         MOV     AX,DX
  29.         STOSW
  30.         POP     AX
  31.         SHL     AX,1
  32.         PUSH    AX
  33.         ADD     BX,AX
  34.         MOV     DX,Si
  35.         LEA     Si,O_COORDS
  36.         LODSW
  37.         MOV     Si,AX
  38.         MOV     AX,[BX+Si+2]
  39.         MOVSX   EAX,AX
  40. FR:     NOP
  41.         NOP
  42.         NOP
  43.         NOP
  44.         ADD     AX,100
  45.         SHL     BP,1
  46.         MOV     DS:TEXTiBUF[BP],AX
  47.         MOV     AX,[BX+Si+6]
  48.         MOVSX   EAX,AX
  49. SC:     NOP
  50.         NOP
  51.         NOP
  52.         NOP
  53.         ADD     AX,100
  54.         MOV     DS:TEXTiBUF[BP+2],AX
  55.         MOV     Si,DX
  56.         POP     AX
  57.         SUB     BX,AX
  58.         SHR     BP,1
  59.         MOV     AX,BX
  60.         SHR     AX,1
  61.         ADD     AX,BX
  62.         MOV     DX,BX
  63.         MOV     BX,AX
  64.         MOVSX     EAX,R_COORD[BX+6]
  65.         SHR     EAX,2
  66.         CMP     AX,-16
  67.         JNL     JO1
  68.         MOV     AX,-16
  69. JO1:    CMP     AX,16
  70.         JNG     JO2
  71.         MOV     AX,16
  72. JO2:    MOV     DS:GOURBUF[BP],AX
  73.         iNC     BP
  74.         iNC     BP
  75.         CMP     WORD PTR DS:[Si],EOF
  76.         JNE     NEXTVERTiCE
  77.         MOV     AX,N
  78.         PUSHA
  79.         PUSH    ES
  80.         MOV     BX,SCRPOiNTER
  81.         MOV     ES,BX
  82.         PUSH    CX
  83.         CMP     TEX,1
  84.         JNE     NOTEXTURE
  85.         CALL    TEXTURE
  86.         JMP     TEXTURERULE
  87. NOTEXTURE:
  88.         POP     CX
  89.         CMP     CS:GOU,1
  90.         JNE     OKAD
  91.         MOV     DWORD PTR CS:HORiZCiK_GOUR,0909090AAH
  92.         CALL    GOURAUD
  93.         JMP     OKAD
  94. TEXTURERULE:
  95.         POP     CX
  96.         CMP     CS:GOU,1
  97.         JNE     OKAD
  98.         MOV     DWORD PTR CS:HORiZCiK_GOUR,47052826H
  99.         CALL    GOURAUD
  100. OKAD:   POP     ES
  101.         POPA
  102.         ADD     Si,2
  103. NOTTODiSP:
  104.         POP     Si
  105.         DEC     N
  106.         JNZ     NEXTFACE
  107.         RET
  108. DRAW2:  PUSH    CS
  109.         POP     ES
  110.         PUSH    @DATA
  111.         POP     DS
  112.         MOV     AX,CS:TEXTBUFF
  113.         MOV     GS,AX
  114.         MOV     AX,ViSFACES
  115.         MOV     N,AX
  116.         MOV     Si,OFFSET ORDER
  117. NEXTFACE2:
  118.         LODSW
  119.         ADD     Si,2
  120.         PUSH    Si
  121.         MOV     Si,AX
  122.         MOV     Di,OFFSET CS:POiNTBUF
  123.         MOV     BP,0;OFFSET CS:GOURBUF
  124. DiSP22: MOV     CX,0
  125. NEXTVERTiCE2:
  126.         iNC     CX
  127.         LODSW
  128.         MOV     BX,AX
  129.         SHL     BX,2
  130.         PUSH    AX
  131.         MOV     AX,C_COORD[BX+2]
  132.         MOV     DX,AX
  133.         MOV     AX,C_COORD[BX+4]
  134.         STOSW
  135.         MOV     AX,DX
  136.         STOSW
  137.         POP     AX
  138.         SHL     AX,1
  139.         PUSH    AX
  140.         ADD     BX,AX
  141.         MOV     DX,Si
  142.         LEA     Si,O_COORDS
  143.         LODSW
  144.         MOV     Si,AX
  145.         MOV     AX,[BX+Si+2]
  146.         MOVSX   EAX,AX
  147. FR2:    NOP
  148.         NOP
  149.         NOP
  150.         NOP
  151.         ADD     AX,100
  152.         SHL     BP,1
  153.         MOV     DS:TEXTiBUF[BP],AX
  154.         MOV     AX,[BX+Si+6]
  155.         MOVSX   EAX,AX
  156. SC2:    NOP
  157.         NOP
  158.         NOP
  159.         NOP
  160.         ADD     AX,100
  161.         MOV     DS:TEXTiBUF[BP+2],AX
  162.         MOV     Si,DX
  163.         POP     AX
  164.         SUB     BX,AX
  165.         SHR     BP,1
  166.         MOV     AX,BX
  167.         SHR     AX,1
  168.         ADD     AX,BX
  169.         MOV     DX,BX
  170.         MOV     BX,AX
  171.         MOVSX     EAX,R_COORD[BX+6]
  172.         SHR     EAX,4
  173.         NEG     AX
  174.         ADD     AX,56
  175.         MOV     DS:GOURBUF[BP],AX
  176.         iNC     BP
  177.         iNC     BP
  178.         CMP     WORD PTR DS:[Si],EOF
  179.         JNE     NEXTVERTiCE2
  180.         MOV     AX,N
  181.         PUSHA
  182.         PUSH    ES
  183.         MOV     BX,SCRPOiNTER
  184.         MOV     ES,BX
  185.         PUSH    CX
  186.         CMP     TEX,1
  187.         JNE     NOTEXTURE2
  188.         CALL    TEXTURE
  189.         JMP     TEXTURERULE2
  190. NOTEXTURE2:
  191.         POP     CX
  192.         CMP     CS:GOU,1
  193.         JNE     OKAD2
  194.         MOV     DWORD PTR CS:HORiZCiK_GOUR,0909090AAH
  195.         CALL    GOURAUD
  196.         JMP     OKAD2
  197. TEXTURERULE2:
  198.         POP     CX
  199.         CMP     CS:GOU,1
  200.         JNE     OKAD2
  201.         MOV     DWORD PTR CS:HORiZCiK_GOUR,47052826H
  202.         CALL    GOURAUD
  203. OKAD2:  POP     ES
  204.         POPA
  205.         ADD     Si,2
  206. NOTTODiSP2:
  207.         POP     Si
  208.         DEC     N
  209.         JNZ     NEXTFACE2
  210.         RET
  211.