home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 625.lha / STScan_v2.0 / scnplane.asm < prev    next >
Assembly Source File  |  1992-02-22  |  6KB  |  435 lines

  1. ;Screen and File Routines
  2.     cseg
  3.     xref    _asmlines
  4.  
  5.     xdef    _p64to16
  6. _p64to16:
  7.     movem.l    d0-d7/a0-a6,-(a7)
  8.     move.l    64(a7),a0
  9.     move.l    68(a7),d7
  10.     subq.w    #1,d7
  11.     move.l    a0,a1
  12. slp:    move.w    (a0)+,d0
  13.     lsr.w    #2,d0
  14.     lsl.b    #4,d0
  15.     lsr.w    #4,d0
  16.     move.b    d0,(a1)+
  17.     dbra    d7,slp
  18.     movem.l (a7)+,d0-d7/a0-a6
  19.     rts
  20.  
  21.     xdef    _clrscr
  22. _clrscr:
  23.     movem.l    d0-d7/a0-a6,-(a7)
  24.     move.l    64(a7),a1
  25.     move.l    68(a7),a2
  26.     move.l    72(a7),a3
  27.     move.l    76(a7),a4
  28.     move.w    _asmlines,d5
  29. clrlp0:    move.w    #38,d7
  30. clrlp1:    clr.w    (a1)+
  31.     clr.w    (a2)+
  32.     clr.w    (a3)+
  33.     clr.w    (a4)+
  34.     dbra    d7,clrlp1
  35.     lea.l    2(a1),a1
  36.     lea.l    2(a2),a2
  37.     lea.l    2(a3),a3
  38.     lea.l    2(a4),a4
  39.     dbra    d5,clrlp0
  40.     movem.l (a7)+,d0-d7/a0-a6
  41.     rts
  42.  
  43.     xdef    _bwview
  44. _bwview:
  45.     movem.l    d0-d7/a0-a6,-(a7)
  46.     move.l    64(a7),a0
  47.     move.l    68(a7),a1
  48.     move.l    72(a7),a2
  49.     move.l    76(a7),a3
  50.     move.l    80(a7),a4
  51.     move.l    84(a7),a5
  52.     move.w    _asmlines,d5
  53. bwlp0:    move.l    a0,a6
  54.     move.w    #38,d7
  55. bwlp1:    move.w    (a6)+,d6
  56.     move.w    d6,(a1)+
  57.     clr.w    (a2)+
  58.     clr.w    (a3)+
  59.     clr.w    (a4)+
  60.     dbra    d7,bwlp1
  61.     lea.l    2(a1),a1
  62.     lea.l    2(a2),a2
  63.     lea.l    2(a3),a3
  64.     lea.l    2(a4),a4
  65.     adda.l    a5,a0
  66.     dbra    d5,bwlp0
  67.     movem.l (a7)+,d0-d7/a0-a6
  68.     rts
  69.  
  70.     xdef    _grayview
  71. _grayview:
  72.     movem.l    d0-d7/a0-a6,-(a7)
  73.     move.l    64(a7),a0
  74.     move.l    68(a7),a1
  75.     move.l    72(a7),a2
  76.     move.l    76(a7),a3
  77.     move.l    80(a7),a4
  78.     move.l    84(a7),a5
  79.     move.l  #$10000000,d6
  80.     move.w    _asmlines,d5
  81. grlp0:    move.l    a0,a6
  82.     move.w    #77,d7
  83. grlp1:    move.l    (a6)+,d0
  84.     add.l    d6,d0
  85.     lsl.l    #1,d0
  86.     roxl.b    #1,d4
  87.     lsl.l    #1,d0
  88.     roxl.b    #1,d3
  89.     lsl.l    #1,d0
  90.     roxl.b    #1,d2
  91.     lsl.l    #1,d0
  92.     roxl.b    #1,d1
  93.     add.l    d6,d0
  94.     lsl.l    #1,d0
  95.     roxl.b    #1,d4
  96.     lsl.l    #1,d0
  97.     roxl.b    #1,d3
  98.     lsl.l    #1,d0
  99.     roxl.b    #1,d2
  100.     lsl.l    #1,d0
  101.     roxl.b    #1,d1
  102.     add.l    d6,d0
  103.     lsl.l    #1,d0
  104.     roxl.b    #1,d4
  105.     lsl.l    #1,d0
  106.     roxl.b    #1,d3
  107.     lsl.l    #1,d0
  108.     roxl.b    #1,d2
  109.     lsl.l    #1,d0
  110.     roxl.b    #1,d1
  111.     add.l    d6,d0
  112.     lsl.l    #1,d0
  113.     roxl.b    #1,d4
  114.     lsl.l    #1,d0
  115.     roxl.b    #1,d3
  116.     lsl.l    #1,d0
  117.     roxl.b    #1,d2
  118.     lsl.l    #1,d0
  119.     roxl.b    #1,d1
  120.     add.l    d6,d0
  121.     lsl.l    #1,d0
  122.     roxl.b    #1,d4
  123.     lsl.l    #1,d0
  124.     roxl.b    #1,d3
  125.     lsl.l    #1,d0
  126.     roxl.b    #1,d2
  127.     lsl.l    #1,d0
  128.     roxl.b    #1,d1
  129.     add.l    d6,d0
  130.     lsl.l    #1,d0
  131.     roxl.b    #1,d4
  132.     lsl.l    #1,d0
  133.     roxl.b    #1,d3
  134.     lsl.l    #1,d0
  135.     roxl.b    #1,d2
  136.     lsl.l    #1,d0
  137.     roxl.b    #1,d1
  138.     add.l    d6,d0
  139.     lsl.l    #1,d0
  140.     roxl.b    #1,d4
  141.     lsl.l    #1,d0
  142.     roxl.b    #1,d3
  143.     lsl.l    #1,d0
  144.     roxl.b    #1,d2
  145.     lsl.l    #1,d0
  146.     roxl.b    #1,d1
  147.     add.l    d6,d0
  148.     lsl.l    #1,d0
  149.     roxl.b    #1,d4
  150.     lsl.l    #1,d0
  151.     roxl.b    #1,d3
  152.     lsl.l    #1,d0
  153.     roxl.b    #1,d2
  154.     lsl.l    #1,d0
  155.     roxl.b    #1,d1
  156.     move.b    d1,(a1)+
  157.     move.b    d2,(a2)+
  158.     move.b    d3,(a3)+
  159.     move.b    d4,(a4)+
  160.     dbra    d7,grlp1
  161.     lea.l    2(a1),a1
  162.     lea.l    2(a2),a2
  163.     lea.l    2(a3),a3
  164.     lea.l    2(a4),a4
  165.     adda.l    a5,a0
  166.     dbra    d5,grlp0
  167.     movem.l (a7)+,d0-d7/a0-a6
  168.     rts
  169.  
  170.     xdef    _vplanesep
  171. _vplanesep:
  172.     movem.l    d0-d7/a0-a6,-(a7)
  173.     move.l    64(a7),a0
  174.     move.l    68(a7),a1
  175.     move.l    72(a7),a2
  176.     move.l    76(a7),a3
  177.     move.l    80(a7),a4
  178.     move.l    84(a7),d7
  179.     move.l  #$10000000,d6
  180.      subq.w    #1,d7
  181. vplp:    move.l    (a0)+,d0
  182.     add.l    d6,d0
  183.     lsl.l    #1,d0
  184.     roxl.b    #1,d4
  185.     lsl.l    #1,d0
  186.     roxl.b    #1,d3
  187.     lsl.l    #1,d0
  188.     roxl.b    #1,d2
  189.     lsl.l    #1,d0
  190.     roxl.b    #1,d1
  191.     add.l    d6,d0
  192.     lsl.l    #1,d0
  193.     roxl.b    #1,d4
  194.     lsl.l    #1,d0
  195.     roxl.b    #1,d3
  196.     lsl.l    #1,d0
  197.     roxl.b    #1,d2
  198.     lsl.l    #1,d0
  199.     roxl.b    #1,d1
  200.     add.l    d6,d0
  201.     lsl.l    #1,d0
  202.     roxl.b    #1,d4
  203.     lsl.l    #1,d0
  204.     roxl.b    #1,d3
  205.     lsl.l    #1,d0
  206.     roxl.b    #1,d2
  207.     lsl.l    #1,d0
  208.     roxl.b    #1,d1
  209.     add.l    d6,d0
  210.     lsl.l    #1,d0
  211.     roxl.b    #1,d4
  212.     lsl.l    #1,d0
  213.     roxl.b    #1,d3
  214.     lsl.l    #1,d0
  215.     roxl.b    #1,d2
  216.     lsl.l    #1,d0
  217.     roxl.b    #1,d1
  218.     add.l    d6,d0
  219.     lsl.l    #1,d0
  220.     roxl.b    #1,d4
  221.     lsl.l    #1,d0
  222.     roxl.b    #1,d3
  223.     lsl.l    #1,d0
  224.     roxl.b    #1,d2
  225.     lsl.l    #1,d0
  226.     roxl.b    #1,d1
  227.     add.l    d6,d0
  228.     lsl.l    #1,d0
  229.     roxl.b    #1,d4
  230.     lsl.l    #1,d0
  231.     roxl.b    #1,d3
  232.     lsl.l    #1,d0
  233.     roxl.b    #1,d2
  234.     lsl.l    #1,d0
  235.     roxl.b    #1,d1
  236.     add.l    d6,d0
  237.     lsl.l    #1,d0
  238.     roxl.b    #1,d4
  239.     lsl.l    #1,d0
  240.     roxl.b    #1,d3
  241.     lsl.l    #1,d0
  242.     roxl.b    #1,d2
  243.     lsl.l    #1,d0
  244.     roxl.b    #1,d1
  245.     add.l    d6,d0
  246.     lsl.l    #1,d0
  247.     roxl.b    #1,d4
  248.     lsl.l    #1,d0
  249.     roxl.b    #1,d3
  250.     lsl.l    #1,d0
  251.     roxl.b    #1,d2
  252.     lsl.l    #1,d0
  253.     roxl.b    #1,d1
  254.     move.b    d1,(a1)+
  255.     move.b    d2,(a2)+
  256.     move.b    d3,(a3)+
  257.     move.b    d4,(a4)+
  258.     dbra    d7,vplp
  259.     movem.l (a7)+,d0-d7/a0-a6
  260.     rts
  261.  
  262.     xdef    _fplanesep
  263. _fplanesep:
  264.     movem.l    d0-d7/a0-a6,-(a7)
  265.     move.l    64(a7),a0
  266.     move.l    68(a7),a1
  267.     move.l    72(a7),a2
  268.     move.l    76(a7),a3
  269.     move.l    80(a7),a4
  270.     move.l    84(a7),d7
  271.      subq.w    #1,d7
  272. fplp:    move.l    (a0)+,d0
  273.     lsl.l    #1,d0
  274.     roxl.b    #1,d4
  275.     lsl.l    #1,d0
  276.     roxl.b    #1,d3
  277.     lsl.l    #1,d0
  278.     roxl.b    #1,d2
  279.     lsl.l    #1,d0
  280.     roxl.b    #1,d1
  281.     lsl.l    #1,d0
  282.     roxl.b    #1,d4
  283.     lsl.l    #1,d0
  284.     roxl.b    #1,d3
  285.     lsl.l    #1,d0
  286.     roxl.b    #1,d2
  287.     lsl.l    #1,d0
  288.     roxl.b    #1,d1
  289.     lsl.l    #1,d0
  290.     roxl.b    #1,d4
  291.     lsl.l    #1,d0
  292.     roxl.b    #1,d3
  293.     lsl.l    #1,d0
  294.     roxl.b    #1,d2
  295.     lsl.l    #1,d0
  296.     roxl.b    #1,d1
  297.     lsl.l    #1,d0
  298.     roxl.b    #1,d4
  299.     lsl.l    #1,d0
  300.     roxl.b    #1,d3
  301.     lsl.l    #1,d0
  302.     roxl.b    #1,d2
  303.     lsl.l    #1,d0
  304.     roxl.b    #1,d1
  305.     lsl.l    #1,d0
  306.     roxl.b    #1,d4
  307.     lsl.l    #1,d0
  308.     roxl.b    #1,d3
  309.     lsl.l    #1,d0
  310.     roxl.b    #1,d2
  311.     lsl.l    #1,d0
  312.     roxl.b    #1,d1
  313.     lsl.l    #1,d0
  314.     roxl.b    #1,d4
  315.     lsl.l    #1,d0
  316.     roxl.b    #1,d3
  317.     lsl.l    #1,d0
  318.     roxl.b    #1,d2
  319.     lsl.l    #1,d0
  320.     roxl.b    #1,d1
  321.     lsl.l    #1,d0
  322.     roxl.b    #1,d4
  323.     lsl.l    #1,d0
  324.     roxl.b    #1,d3
  325.     lsl.l    #1,d0
  326.     roxl.b    #1,d2
  327.     lsl.l    #1,d0
  328.     roxl.b    #1,d1
  329.     lsl.l    #1,d0
  330.     roxl.b    #1,d4
  331.     lsl.l    #1,d0
  332.     roxl.b    #1,d3
  333.     lsl.l    #1,d0
  334.     roxl.b    #1,d2
  335.     lsl.l    #1,d0
  336.     roxl.b    #1,d1
  337.     not.b    d1
  338.     not.b    d2
  339.     not.b    d3
  340.     not.b    d4
  341.     move.b    d1,(a1)+
  342.     move.b    d2,(a2)+
  343.     move.b    d3,(a3)+
  344.     move.b    d4,(a4)+
  345.     dbra    d7,fplp
  346.     movem.l (a7)+,d0-d7/a0-a6
  347.     rts
  348.  
  349.     xdef    _fplanegen
  350. _fplanegen:
  351.     movem.l    d0-d7/a0-a6,-(a7)
  352.     move.l    64(a7),a0
  353.     move.l    68(a7),a1
  354.     move.l    72(a7),a2
  355.     move.l    76(a7),a3
  356.     move.l    80(a7),a4
  357.     move.l    84(a7),d7
  358.      subq.w    #1,d7
  359. fpglp:    move.b    (a1)+,d1
  360.     not.b    d1
  361.     move.b    (a2)+,d2
  362.     not.b    d2
  363.     move.b    (a3)+,d3
  364.     not.b    d3
  365.     move.b    (a4)+,d4
  366.         not.b    d4
  367.          lsl.b    #1,d4
  368.     roxl.l    #1,d0
  369.     lsl.b    #1,d3
  370.     roxl.l    #1,d0
  371.     lsl.b    #1,d2
  372.     roxl.l    #1,d0
  373.     lsl.b    #1,d1
  374.     roxl.l    #1,d0
  375.          lsl.b    #1,d4
  376.     roxl.l    #1,d0
  377.     lsl.b    #1,d3
  378.     roxl.l    #1,d0
  379.     lsl.b    #1,d2
  380.     roxl.l    #1,d0
  381.     lsl.b    #1,d1
  382.     roxl.l    #1,d0
  383.          lsl.b    #1,d4
  384.     roxl.l    #1,d0
  385.     lsl.b    #1,d3
  386.     roxl.l    #1,d0
  387.     lsl.b    #1,d2
  388.     roxl.l    #1,d0
  389.     lsl.b    #1,d1
  390.     roxl.l    #1,d0
  391.          lsl.b    #1,d4
  392.     roxl.l    #1,d0
  393.     lsl.b    #1,d3
  394.     roxl.l    #1,d0
  395.     lsl.b    #1,d2
  396.     roxl.l    #1,d0
  397.     lsl.b    #1,d1
  398.     roxl.l    #1,d0
  399.          lsl.b    #1,d4
  400.     roxl.l    #1,d0
  401.     lsl.b    #1,d3
  402.     roxl.l    #1,d0
  403.     lsl.b    #1,d2
  404.     roxl.l    #1,d0
  405.     lsl.b    #1,d1
  406.     roxl.l    #1,d0
  407.          lsl.b    #1,d4
  408.     roxl.l    #1,d0
  409.     lsl.b    #1,d3
  410.     roxl.l    #1,d0
  411.     lsl.b    #1,d2
  412.     roxl.l    #1,d0
  413.     lsl.b    #1,d1
  414.     roxl.l    #1,d0
  415.          lsl.b    #1,d4
  416.     roxl.l    #1,d0
  417.     lsl.b    #1,d3
  418.     roxl.l    #1,d0
  419.     lsl.b    #1,d2
  420.     roxl.l    #1,d0
  421.     lsl.b    #1,d1
  422.     roxl.l    #1,d0
  423.          lsl.b    #1,d4
  424.     roxl.l    #1,d0
  425.     lsl.b    #1,d3
  426.     roxl.l    #1,d0
  427.     lsl.b    #1,d2
  428.     roxl.l    #1,d0
  429.     lsl.b    #1,d1
  430.     roxl.l    #1,d0
  431.     move.l    d0,(a0)+
  432.     dbra    d7,fpglp
  433.     movem.l (a7)+,d0-d7/a0-a6
  434.     rts
  435.