home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 2 / crawlyvol2.bin / apps / dtp / pgsmodst / atariexp / degas.s < prev    next >
Text File  |  1991-02-21  |  3KB  |  195 lines

  1.  
  2.  Include "expequ.h"
  3.  Include "equ.h"
  4.  
  5.     .text
  6.  
  7. ***************************************************
  8. ***                        ***
  9. ***************************************************
  10. dumbentry:
  11.     clr.l    d0
  12.     rts
  13.  
  14.     dc.l    "EXPP"
  15.     dc.w    200
  16.     dc.l    0
  17.  
  18. table:    dc.l    0
  19.     dc.l    name,special,check,degas
  20.  
  21. check:    rts
  22.  
  23. *
  24. * Uncompressed Degas
  25. *
  26. degas:    move.l    table,a0
  27.     move.l    f_openw(a0),a0
  28.     jsr    (a0)
  29.     beq    rrts
  30.  
  31.     moveq    #2,d0            ;hires
  32.     bsr    putword
  33.  
  34.     move.l    table,a4
  35.     move.l    cwptr(a4),a4
  36.     move.l    (a4),a4
  37.     move.l    (a4),a4
  38.     move.l    a4,wptr
  39.     move.l    pi_Ptr(a4),a0
  40.     move.l    (a0),a0
  41.  
  42.     move.w    #2,temp1
  43. dgsp2:    bsr    getcolor
  44.     move.l    a0,-(sp)
  45.     bsr    putword
  46.     move.l    (sp)+,a0
  47.     subq.w    #1,temp1
  48.     bne    dgsp2
  49.  
  50.     move.w    #16-2,temp1
  51. dgsp40:    moveq    #0,d0
  52.     bsr    putword
  53.     subq.w    #1,temp1
  54.     bne    dgsp40
  55.  
  56.  
  57.     move.w    #80,d0
  58.     moveq    #0,d1
  59.     cmp.w    pi_Width(a4),d0
  60.     bls    dgsp50
  61.     move.w    d0,d1
  62.     move.w    pi_Width(a4),d0
  63.     sub.w    d0,d1
  64. dgsp50:    lsr.w    #1,d0
  65.     lsr.w    #1,d1
  66.     move.w    d0,tocopy
  67.     move.w    d1,tozero
  68.  
  69.     move.w    #400,d0
  70.     moveq    #0,d1
  71.     cmp.w    pi_H(a4),d0
  72.     bls    dgsp51
  73.     move.w    d0,d1
  74.     move.w    pi_H(a4),d0
  75.     sub.w    d0,d1
  76. dgsp51:    move.w    d0,rtocopy
  77.     move.w    d1,rtozero
  78.  
  79.     move.l    wptr,a4
  80.     move.l    pi_Ptr(a4),a0
  81.     move.l    (a0),a0
  82.     move.w    pi_Palet(a4),d0
  83.     mulu    #pl_Sizeof,d0
  84.     add.l    d0,a0
  85.     move.l    a0,pptr
  86.  
  87. dgsp6:    move.w    tocopy,temp1
  88. dgsp7:    move.w    (a0)+,d0
  89.     move.l    a0,tpptr
  90.     bsr    putword
  91.     move.l    tpptr,a0
  92.     subq.w    #1,temp1
  93.     bne    dgsp7
  94.     move.w    tozero,temp1
  95.     bra    dgsp9
  96. dgsp8:    moveq    #0,d0
  97.     bsr    putword
  98. dgsp9:    subq.w    #1,temp1
  99.     bcc    dgsp8
  100.  
  101.     move.l    pptr,a0
  102.     move.l    wptr,a4
  103.     add.w    pi_Width(a4),a0
  104.     move.l    a0,pptr
  105.  
  106.     subq.w    #1,rtocopy
  107.     bne    dgsp6
  108.  
  109.     bra    dgsp12
  110. dgsp10:    move.w    #40,temp1
  111. dgsp11:    moveq    #0,d0
  112.     bsr    putword
  113.     subq.w    #1,temp1
  114.     bne    dgsp11
  115. dgsp12:    subq.w    #1,rtozero
  116.     bcc    dgsp10
  117.  
  118.     move.l    table,a0
  119.     move.l    f_closew(a0),a0
  120.     jmp    (a0)
  121.  
  122. *
  123. *
  124. *
  125. getcolor:
  126.     move.w    (a0)+,d0
  127.     move.w    (a0)+,d1
  128.     move.w    (a0)+,d2
  129.     addq.l    #2,a0
  130.  
  131.     mulu    #7,d0
  132.     mulu    #7,d1
  133.     mulu    #7,d2
  134.     divu    #65535,d0
  135.     divu    #65535,d1
  136.     divu    #65535,d2
  137.     and.w    #%0000000000000111,d0
  138.     and.w    #%0000000000000111,d1
  139.     and.w    #%0000000000000111,d2
  140.     lsl.w    #8,d0
  141.     lsl.w    #4,d1
  142.     or.w    d1,d0
  143.     or.w    d2,d0
  144. rrts:    rts
  145.  
  146. *
  147. *
  148. *****************************************
  149. *                    *
  150. *****************************************
  151. putbyte:
  152.     move.l    table,a1
  153.     move.l    f_put(a1),a1
  154.     jmp    (a1)
  155.  
  156. *****************************************
  157. *                    *
  158. *****************************************
  159. putword:
  160.     move.l    table,a1
  161.     move.l    f_putw(a1),a1
  162.     jmp    (a1)
  163.  
  164. *************************************************************
  165. *************************************************************
  166.  
  167.     .data
  168.  
  169. special:
  170.     dc.w    1
  171.     dc.l    spc1
  172.  
  173. name:    dc.b    "Degas Picture v2.0.0",0
  174. spc1:    dc.b    "640x400 Monochrome",0
  175.  
  176.  
  177.     .bss
  178.  
  179. temp1:        ds.w    1
  180. temp2:        ds.w    1
  181. temp3:        ds.w    1
  182.  
  183. bitpln:        ds.w    1
  184. pwidth:        ds.w    1
  185.  
  186. tocopy:        ds.w    1
  187. tozero:        ds.w    1
  188. rtocopy:    ds.w    1
  189. rtozero:    ds.w    1
  190.  
  191. wptr:        ds.l    1
  192. plane:        ds.l    1
  193. pptr:        ds.l    1
  194. tpptr:        ds.l    1
  195.