home *** CD-ROM | disk | FTP | other *** search
/ CD-X 1 / cdx_01.iso / demodisc / cyberdan / etc / palette.asm < prev    next >
Encoding:
Assembly Source File  |  1995-03-23  |  6.4 KB  |  202 lines

  1. ;▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  2. ;
  3. ; Ez a néhány kisebb rutin a palettakezelést végzi 16 és 256-színû módokban.
  4. ;
  5. ; PAL16:       DS:SI-nél található 16-színû palettát rak ki (48 byte)
  6. ; PAL256:      DS:SI-nél található 256-színû palettát rak ki (768 byte)
  7. ; DARKENPAL:   Az aktuális palettát azonnal leveszi feketére
  8. ; FADEPAL:     Az aktuális palettát csökkentve elhalványítja a képernyôt
  9. ; RASTERWAIT:  Raszterfigyelés (minden gépen ugyanannyi ideig tart)
  10. ; RASTERWAIT2: Raszterfigyelés (gyorsabb gépen kevesebb ideig vár)
  11. ; PALMORPH:    Két 16 színû palettát átúsztat egymásba, az egyik DS:SI-nél van,
  12. ;              a másik ES:DI-nél. Pillanatok alatt átírható 256 színûre is.
  13. ;              A DS:SI-nél levô lesz olyan mint az ES:DI-nél levô.
  14. ; REGBEALLiT:  16 színû üzemmódba való váltás után érdemes meghívi ezt a
  15. ;              rutint. A 0...15 színekhez hozzárendeli a 0...15 palettare-
  16. ;              gisztert. (alapesetbe nem mindig van így)
  17. ;
  18. ;▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  19.  
  20. B               EQU     BYTE PTR       ; Egy kis egyszerûsítés...
  21.  
  22. ;▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  23.  
  24. PAL16:          PUSH    Si
  25.                 PUSH    DX
  26.                 PUSH    AX
  27.                 PUSH    CX
  28.                 MOV     CX,48
  29.                 MOV     DX,3C8H
  30.                 XOR     AL,AL
  31.                 OUT     DX,AL
  32.                 iNC     DX
  33.                 REP     OUTSB
  34.                 POP     CX
  35.                 POP     AX
  36.                 POP     DX
  37.                 POP     Si
  38.                 RET
  39.  
  40. ;▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  41.  
  42. PAL256:         PUSH    Si
  43.                 PUSH    DX
  44.                 PUSH    AX
  45.                 PUSH    CX
  46.                 MOV     CX,768
  47.                 MOV     DX,3C8H
  48.                 XOR     AL,AL
  49.                 OUT     DX,AL
  50.                 iNC     DX
  51.                 REP     OUTSB
  52.                 POP     CX
  53.                 POP     AX
  54.                 POP     DX
  55.                 POP     Si
  56.                 RET
  57.                    
  58. ;▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  59.  
  60. DARKENPAL:      PUSH    CX DX AX
  61.                 MOV     DX,3C8H
  62.                 MOV     AL,0
  63.                 OUT     DX,AL
  64.                 MOV     CX,768
  65.                 INC     DX
  66. DPAL0:          OUT     DX,AL
  67.                 LOOP    DPAL0
  68.                 POP     AX DX CX
  69.         RET
  70.  
  71. ;▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  72.  
  73. FADEPAL:        PUSHA
  74.                 MOV     CX,63
  75. DOSFADE1:       PUSH    CX
  76.                 MOV     CX,0
  77. DOSFADE2:       MOV     DX,3C7H
  78.                 MOV     AL,CL 
  79.                 OUT     DX,AL
  80.                 ADD     DX,2
  81.                 iN      AL,DX   ;---- RED
  82.                 MOV     BL,AL
  83.                 iN      AL,DX   ;---- GREEN
  84.                 MOV     BH,AL
  85.                 iN      AL,DX   ;---- BLUE
  86.                 MOV     AH,AL
  87.                 DEC     DX
  88.                 MOV     AL,CL
  89.                 OUT     DX,AL
  90.                 iNC     DX
  91.                 CMP     BL,0
  92.                 JE      DOSFADE_1
  93.                 DEC     BL
  94. DOSFADE_1:      MOV     AL,BL
  95.                 OUT     DX,AL   ;---- RED
  96.                 CMP     BH,0
  97.                 JE      DOSFADE_2
  98.                 DEC     BH
  99. DOSFADE_2:      MOV     AL,BH
  100.                 OUT     DX,AL   ;---- GREEN
  101.                 CMP     AH,0
  102.                 JE      DOSFADE_3
  103.                 DEC     AH
  104. DOSFADE_3:      MOV     AL,AH
  105.                 OUT     DX,AL   ;---- BLUE
  106.                 ADD     CX,1
  107.                 CMP     CX,255
  108.                 JNE     DOSFADE2
  109. POPO:           CALL    RASTERWAiT
  110.                 POP     CX
  111.                 LOOP    DOSFADE1
  112.                 POPA
  113.                 RET
  114.  
  115. ;▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  116.  
  117. RASTERWAiT:
  118.                 PUSH    DX
  119.                 PUSH    AX
  120.                 MOV     DX,3DAH
  121. RASTERW1:       iN      AL,DX
  122.                 AND     AL,8
  123.                 JE      RASTERW1
  124. RASTERW2:       iN      AL,DX
  125.                 AND     AL,8
  126.                 JNE     RASTERW2
  127.                 POP     AX
  128.                 POP     DX
  129.                 RET
  130.  
  131. RASTERWAiT2:
  132.                 PUSH    DX
  133.                 PUSH    AX
  134.                 MOV     DX,3DAH
  135. RASTERW11:      iN      AL,DX
  136.                 AND     AL,8
  137.                 JE      RASTERW11
  138.                 POP     AX
  139.                 POP     DX
  140.                 RET
  141.  
  142. ;▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  143.  
  144. PALMORPH:       PUSH    Si
  145.                 PUSH    Di
  146.                 PUSH    CX
  147.                 PUSH    AX
  148.                 MOV     CX,63
  149. PMR4:           PUSH    CX
  150.                 PUSH    Si
  151.                 PUSH    Di
  152.                 MOV     CX,48
  153. PMR0:           MOV     AL,B CS:[Si]
  154.                 CMP     AL,B CS:[Di]
  155.                 JA      PMR1
  156.                 JE      PMR2
  157.                 iNC     B CS:[Si]
  158.                 JMP     PMR2
  159. PMR1:           DEC     B CS:[Si]
  160. PMR2:           iNC     Si
  161.                 iNC     Di
  162.                 LOOP    PMR0
  163.                 POP     Di
  164.                 POP     Si
  165.                 POP     CX
  166.                 CALL    RASTERWAiT
  167.                 PUSH    DS CS
  168.                 POP     DS
  169.                 CALL    PAL16
  170.                 POP     DS
  171.                 LOOP    PMR4
  172.                 POP     AX
  173.                 POP     CX
  174.                 POP     Di
  175.                 POP     Si
  176.                 RET
  177.  
  178. ;▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
  179.  
  180. REGS  DB 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
  181.  
  182. REGBEALLiT:     PUSH    ES
  183.                 PUSH    AX
  184.                 PUSH    DX
  185.                 MOV     DX,3C8H
  186.                 MOV     AL,16
  187.                 OUT     DX,AL
  188.                 INC     DX
  189.                 XOR     AX,AX
  190.                 OUT     DX,AL
  191.                 OUT     DX,AL
  192.                 OUT     DX,AL
  193.                 MOV     AX,CS
  194.                 MOV     ES,AX
  195.                 LEA     DX,CS:[REGS]
  196.                 MOV     AX,1002H
  197.                 iNT     10H
  198.                 POP     DX
  199.                 POP     AX
  200.                 POP     ES
  201.                 RET
  202.