home *** CD-ROM | disk | FTP | other *** search
/ CD-X 1 / cdx_01.iso / demodisc / basq / source / poweru / gfx.asm < prev    next >
Encoding:
Assembly Source File  |  1993-08-16  |  4.2 KB  |  310 lines

  1. PUBLIC        RTIMEON
  2. PUBLIC        RTIMEOFF
  3. PUBLIC        WAITVERTRETRACE
  4. PUBLIC        RESETCOLORS
  5. PUBLIC        SETCOLORS
  6. PUBLIC        FADEUPCOLORS
  7. PUBLIC        FADEDWCOLORS
  8. PUBLIC        SETFCMODE
  9. PUBLIC        TURNOFFFCMODE
  10. PUBLIC        SET240MODE
  11.  
  12. .386
  13. .MODEL USE16 SMALL
  14. .DATA
  15.  
  16. PRESENT_COLORS    DB    768 DUP(0)
  17.  
  18. .CODE
  19.  
  20. SET240MODE:    PUSHA
  21.         PUSH    ES
  22.         MOV    AX,13H
  23.         INT    10H
  24.         MOV    DX,3C4H
  25.         MOV    AX,0604H
  26.         OUT    DX,AX
  27.         MOV    AX,0100H
  28.         OUT    DX,AX
  29.         MOV    DX,3C2H
  30.         MOV    AL,0E3H
  31.         OUT    DX,AL
  32.         MOV    DX,3C4H
  33.         MOV    AX,0300H
  34.         OUT    DX,AX
  35.         MOV    DX,3D4H
  36.         MOV    AL,11H
  37.         OUT    DX,AL
  38.         INC    DX
  39.         IN    AL,DX
  40.         AND    AL,7FH
  41.         OUT    DX,AL
  42.         DEC    DX
  43.         MOV    AX,0D06H
  44.         OUT    DX,AX
  45.         MOV    AX,03E07H
  46.         OUT    DX,AX
  47.         MOV    AX,4109H
  48.         OUT    DX,AX
  49.         MOV    AX,0EA10H
  50.         OUT    DX,AX
  51.         MOV    AX,0AC11H
  52.         OUT    DX,AX
  53.         MOV    AX,0DF12H
  54.         OUT    DX,AX
  55.         MOV    AX,0014H
  56.         OUT    DX,AX
  57.         MOV    AX,0E715H
  58.         OUT    DX,AX
  59.         MOV    AX,0616H
  60.         OUT    DX,AX
  61.         MOV    AX,0E317H
  62.         OUT    DX,AX
  63.         MOV    DX,3C4H
  64.         MOV    AX,0F02H
  65.         OUT    DX,AX
  66.         CLD
  67.         MOV    AX,0A000H
  68.         MOV    ES,AX
  69.         XOR    EDI,EDI
  70.         XOR    EAX,EAX
  71.         MOV    CX,4000H
  72.         REP    STOSD
  73.         POP    ES
  74.         POPA
  75.         RET
  76.  
  77. RTIMEON:    PUSH    DX
  78.         PUSH    AX
  79.         MOV    DX,3C8H
  80.         XOR    AL,AL
  81.         OUT    DX,AL
  82.         INC    DX
  83.         MOV    AL,63
  84.         OUT    DX,AL
  85.         OUT    DX,AL
  86.         OUT    DX,AL
  87.         POP     AX
  88.         POP     DX
  89.         RET
  90.  
  91. RTIMEOFF:    PUSH    DX
  92.         PUSH    AX
  93.         MOV    DX,3C8H
  94.         XOR    AL,AL
  95.         OUT    DX,AL
  96.         INC    DX
  97.         OUT    DX,AL
  98.         OUT    DX,AL
  99.         OUT    DX,AL
  100.         POP    AX
  101.         POP    DX
  102.         RET
  103.  
  104. WAITVERTRETRACE:PUSH    DX
  105.         PUSH    AX
  106.         MOV    DX,3DAH
  107. NOVRETRACE:    IN    AL,DX
  108.         TEST    AL,8
  109.         JZ    SHORT NOVRETRACE
  110. VRETRACE:    IN    AL,DX
  111.         TEST    AL,8
  112.         JNZ    SHORT VRETRACE
  113.         POP    AX
  114.         POP    DX
  115.         RET
  116.  
  117. RESETCOLORS:    PUSH    AX
  118.         PUSH    CX
  119.         PUSH    DX
  120.         PUSH    SI
  121.         PUSH    DS
  122.         MOV    CX,768
  123.         MOV    DX,3C8H
  124.         XOR    AL,AL
  125.         OUT    DX,AL
  126.         INC    DX
  127.         XOR    SI,SI
  128.         PUSH    SEG PRESENT_COLORS
  129.         POP    DS
  130. RESETCOLORSCIK:    OUT    DX,AL
  131.         MOV    PRESENT_COLORS[SI],AL
  132.         INC    SI
  133.         DEC    CX
  134.         JNZ    SHORT RESETCOLORSCIK
  135.         POP    DS
  136.         POP    SI
  137.         POP    DX
  138.         POP    CX
  139.         POP    AX
  140.         RET
  141.  
  142. FADEUPCOLORS:    PUSHA
  143.         PUSH    DS
  144.         PUSH    FS
  145.         PUSH    SEG PRESENT_COLORS
  146.         POP    DS
  147.         MOV    FS,AX
  148.         LEA    DI,PRESENT_COLORS
  149.         MOV    CX,768
  150.         MOV    DX,3C8H
  151.         XOR    AL,AL
  152.         OUT    DX,AL
  153.         INC    DX
  154. FADEUPCOLCIK:    MOV    AL,DS:[DI]
  155.         CMP    AL,FS:[SI]
  156.         JZ    SHORT NOCHANGECOLFU
  157.         JA    SHORT SUBALFU
  158.         INC    AL
  159.         JMP    NOCHANGECOLFU
  160. SUBALFU:    DEC    AL
  161. NOCHANGECOLFU:    MOV    DS:[DI],AL
  162.         OUT    DX,AL
  163.         INC    DI
  164.         ADD    SI,1
  165.         JNC    SHORT NOADDFSFUCOLORS
  166.         MOV    AX,FS
  167.         ADD    AX,1000H
  168.         MOV    FS,AX
  169. NOADDFSFUCOLORS:DEC    CX
  170.         JNZ    SHORT FADEUPCOLCIK
  171.         POP    FS
  172.         POP    DS
  173.         POPA
  174.         RET
  175.  
  176. FADEDWCOLORS:    PUSHA
  177.         PUSH    DS
  178.         PUSH    SEG PRESENT_COLORS
  179.         POP    DS
  180.         MOV    CX,768
  181.         MOV    DX,3C8H
  182.         XOR    AL,AL
  183.         OUT    DX,AL
  184.         INC    DX
  185.         XOR    DI,DI
  186. FADEDWCIK:      MOV    AL,PRESENT_COLORS[DI]
  187.         OR    AL,AL
  188.         JZ    SHORT NOSUBCOLORAL
  189.         DEC    AL
  190. NOSUBCOLORAL:    MOV    PRESENT_COLORS[DI],AL
  191.         OUT    DX,AL
  192.         INC    DI
  193.         DEC    CX
  194.         JNZ    SHORT FADEDWCIK
  195.         POP    DS
  196.         POPA
  197.         RET
  198.  
  199. SETCOLORS:    PUSHA
  200.         PUSH    FS
  201.         PUSH    DS
  202.         PUSH    SEG PRESENT_COLORS
  203.         POP    DS
  204.         XOR    DI,DI
  205.         MOV    CX,768
  206.         MOV    FS,AX
  207.         MOV    DX,3C8H
  208.         XOR    AL,AL
  209.         OUT    DX,AL
  210.         INC    DX
  211. SETCOLORSCIK:    MOV    AL,FS:[SI]
  212.         OUT    DX,AL
  213.         MOV    PRESENT_COLORS[DI],AL
  214.         INC    DI
  215.         ADD    SI,1
  216.         JNC    SHORT NOADDFSSCCIK
  217.         MOV    AX,FS
  218.         ADD    AX,1000H
  219.         MOV    FS,AX
  220. NOADDFSSCCIK:    DEC    CX
  221.         JNZ    SHORT SETCOLORSCIK
  222.         POP    DS
  223.         POP    FS
  224.         POPA
  225.         RET
  226.  
  227. SETFCMODE:    PUSHA
  228.         MOV    DX,03C4H
  229.         MOV    AL,4
  230.         OUT    DX,AL
  231.         INC    DX
  232.         IN    AL,DX
  233.         AND    AL,0F7H
  234.         OR    AL,4
  235.         OUT    DX,AL
  236.         MOV    DX,03CEH
  237.         MOV    AL,5
  238.         OUT    DX,AL
  239.         INC    DX
  240.         IN    AL,DX
  241.         AND    AL,0EFH
  242.         OR    AL,040H
  243.         OUT    DX,AL
  244.         MOV    DX,03CEH
  245.         MOV    AL,6
  246.         OUT    DX,AL
  247.         INC    DX
  248.         IN    AL,DX
  249.         AND    AL,0FDH
  250.         OUT    DX,AL
  251.         MOV    DX,03D4H
  252.         MOV    AL,014H
  253.         OUT    DX,AL
  254.         INC    DX
  255.         IN    AL,DX
  256.         AND    AL,0BFH
  257.         OUT    DX,AL
  258.         MOV    DX,03D4H
  259.         MOV    AL,017H
  260.         OUT    DX,AL
  261.         INC    DX
  262.         IN    AL,DX
  263.         OR    AL,040H
  264.         OUT    DX,AL
  265.         POPA
  266.         RET
  267.  
  268. TURNOFFFCMODE:    PUSHA
  269.         MOV    DX,03C4H
  270.         MOV    AL,4
  271.         OUT    DX,AL
  272.         INC    DX
  273.         IN    AL,DX
  274.         OR    AL,00001000B
  275.         AND    AL,11111101B
  276.         OUT    DX,AL
  277.         MOV    DX,03CEH
  278.         MOV    AL,5
  279.         OUT    DX,AL
  280.         INC    DX
  281.         IN    AL,DX
  282.         OR    AL,00010000B
  283.         AND    AL,10111111B
  284.         OUT    DX,AL
  285.         MOV    DX,03CEH
  286.         MOV    AL,6
  287.         OUT    DX,AL
  288.         INC    DX
  289.         IN    AL,DX
  290.         OR    AL,00000010B
  291.         OUT    DX,AL
  292.         MOV    DX,03D4H
  293.         MOV    AL,014H
  294.         OUT    DX,AL
  295.         INC    DX
  296.         IN    AL,DX
  297.         OR    AL,01000000B
  298.         OUT    DX,AL
  299.         MOV    DX,03D4H
  300.         MOV    AL,017H
  301.         OUT    DX,AL
  302.         INC    DX
  303.         IN    AL,DX
  304.         AND    AL,10111111B
  305.         OUT    DX,AL
  306.         POPA
  307.         RET
  308.  
  309. END
  310.