home *** CD-ROM | disk | FTP | other *** search
/ CD-X 1 / cdx_01.iso / demodisc / cyberdan / intrance / inc / gfxlib.inc < prev    next >
Encoding:
Text File  |  1994-11-16  |  4.7 KB  |  164 lines

  1. ; RASTERWAiT
  2. ; PLANE         -       CX:   PLANE NR.
  3. ; LBM16         -       DS:Si LBM PLACE
  4. ; LBM16SZETRAK  -       DS:Si LBM PLACE, ES:Di - WHERE, AX-MEKKORA DARABOKRA
  5. ; PAL16KiRAK    -       DS:Si PALETTE PLACE
  6. ; PAL256KiRAK   -       DS:Si PALETTE PLACE
  7. ; SET640X400X16 -       ? :-)
  8. ; SET640X480X16 -       ? ;-)
  9. ; BE            -       \    TEST
  10. ; Ki            -       /    TEST
  11.  
  12. WAS             DB      0
  13.  
  14. PLANE:          PUSH    DX AX
  15.                 MOV     DX,3C4H
  16.                 MOV     AL,2
  17.                 OUT     DX,AL
  18.                 iNC     DX
  19.                 MOV     AL,1
  20.                 SHL     AL,CL
  21.                 OUT     DX,AL
  22.                 POP     AX DX
  23.                 RET
  24.  
  25. SET640X400X16:  CALL    RASTERWAiT
  26.                 MOV     AX,0EH    ; 640X200X16
  27.                 iNT     10H
  28.                 MOV     DX,3D4H
  29.                 MOV     AL,9
  30.                 MOV     AH,0
  31.                 OUT     DX,AX     ; NOW 640X400X16
  32.                 RET
  33.  
  34. SET640X480X16:  CALL    RASTERWAiT
  35.                 MOV     AX,12H    ; 640X48X16
  36.                 iNT     10H
  37.                 RET
  38.  
  39. ;▒▒▒▒▒▒▒ DECRUNCH ▒▒▒▒▒▒
  40. LBM16:          PUSHA
  41.                 MOV     DX,3C4H
  42.                 MOV     AL,2
  43.                 OUT     DX,AL
  44.                 iNC     DX
  45.                 MOV     CS:WAS,10001000B
  46. PLANECHANGE:    MOV     BP,0
  47.                 ROL     CS:WAS,1
  48.                 JC      DO
  49.                 SUB     Di,640/8
  50. DO:             CMP     Di,32000 ;38400
  51.                 JE      ENDDECRUNCH
  52.                 MOV     AL,CS:WAS
  53.                 OUT     DX,AL
  54. FOUND_BODY16:   LODSB
  55.                 CBW
  56.                 MOV     CX,AX
  57.                 OR      AX,AX
  58.                 JS      _REPLiCATE16
  59. _COPY16:        iNC     CX
  60.                 ADD     BP,CX
  61.                 REP     MOVSB
  62.                 JMP     NEXTBLOKK16
  63. _REPLiCATE16:   NEG     CX
  64.                 iNC     CX
  65.                 ADD     BP,CX
  66.                 LODSB
  67.                 REP     STOSB
  68. NEXTBLOKK16:    CMP     BP,640/8
  69.                 JB      FOUND_BODY16
  70.                 JMP     PLANECHANGE
  71. ENDDECRUNCH:    POPA
  72.                 RET
  73.  
  74. _SZETR_1        DW      0
  75.  
  76. LBM16SZETRAK:   PUSHA
  77.                 MOV     [CS:_SZETR_1],AX
  78.                 MOV     CS:WAS,0
  79.                 MOV     BP,0
  80.                 JMP     EFOUND_BODY16
  81. EDO:            CMP     Di,[CS:_SZETR_1]
  82.                 JA      EENDDECRUNCH
  83.                 MOV     [CS:WAS],0
  84.                 MOV     DX,ES
  85.                 MOV     AX,[CS:_SZETR_1]
  86.                 SHR     AX,4
  87.                 SUB     DX,AX
  88.                 SUB     DX,AX
  89.                 SUB     DX,AX
  90.                 MOV     ES,DX
  91. EFOUND_BODY16:  LODSB
  92.                 CBW
  93.                 MOV     CX,AX
  94.                 OR      AX,AX
  95.                 JS      E_REPLiCATE16
  96. E_COPY16:       iNC     CX
  97.                 ADD     BP,CX
  98.                 REP     MOVSB
  99.                 JMP     ENEXTBLOKK16
  100. E_REPLiCATE16:  NEG     CX
  101.                 iNC     CX
  102.                 ADD     BP,CX
  103.                 LODSB
  104.                 REP     STOSB
  105. ENEXTBLOKK16:   CMP     BP,80
  106.                 JB      EFOUND_BODY16
  107.                 MOV     BP,0
  108.                  CMP    [CS:WAS],3
  109.         JE    EDO
  110.         iNC     [CS:WAS]
  111.         SUB    Di,80
  112.                 MOV     AX,ES
  113.                 MOV     BX,[CS:_SZETR_1]
  114.                 SHR     BX,4
  115.                 ADD     AX,BX
  116.                 MOV     ES,AX
  117.                 JMP     EFOUND_BODY16
  118. EENDDECRUNCH:   POPA
  119.                 RET
  120.  
  121. CLEARALLPLANES: PUSH    AX CX Di ES
  122.                 MOV     CX,0
  123.                 MOV     AX,0A000H
  124.                 MOV     ES,AX
  125.                 XOR     EAX,EAX
  126. CLEAR_ALL_PLA0: CALL    PLANE
  127.                 XOR     Di,Di
  128.                 PUSH    CX
  129.                 MOV     CX,16000
  130.                 REP     STOSD
  131.                 POP     CX
  132.                 iNC     CX
  133.                 CMP     CX,4
  134.                 JB      CLEAR_ALL_PLA0
  135.                 POP     ES Di CX AX
  136.                 RET
  137.  
  138. Ki:             PUSH    AX
  139.                 PUSH    DX
  140.                 MOV     DX,3C8H
  141.                 MOV     AL,0
  142.                 OUT     DX,AL
  143.                 iNC     DX
  144.                 MOV     AL,0
  145.                 OUT     DX,AL
  146.                 OUT     DX,AL
  147.                 MOV     AL,63
  148.                 OUT     DX,AL
  149.                 POP     DX
  150.                 POP     AX
  151.                 RET
  152. BE:             PUSH    AX
  153.                 PUSH    DX
  154.                 MOV     DX,3C8H
  155.                 MOV     AL,0
  156.                 OUT     DX,AL
  157.                 iNC     DX
  158.                 OUT     DX,AL
  159.                 OUT     DX,AL
  160.                 OUT     DX,AL
  161.                 POP     DX
  162.                 POP     AX
  163.                 RET
  164.