home *** CD-ROM | disk | FTP | other *** search
/ M.u.C.S. Disc 2000 / MUCS2000.iso / falcon / whip.031 / vlm / raytun11 / fscr.i < prev    next >
Text File  |  1999-05-02  |  23KB  |  888 lines

  1. * Falcon screenroutines:
  2. *
  3. * + resolutionswitchers
  4. * + screenclearers
  5. * + screencopiers
  6. * + pallettesetters/savers
  7.  
  8. ; VIDEO-modes available
  9.  
  10. ; VGA (60 & 100Hz)  RGB (50 & 60Hz)
  11. ; 160*100 8bit      320*100 8bit
  12. ; 160*120 8bit      320*120 8bit
  13. ; 320*200 8bit      320*200 8bit
  14. ; 320*240 8bit      320*240 8bit
  15. ; 640*400 8bit      640*400 8bit
  16. ; 640*480 8bit      640*480 8bit
  17.  
  18. ; 160*100 16bit     320*100 16bit
  19. ; 320*100 16bit
  20. ; 160*120 16bit     320*120 16bit
  21. ; 320*200 16bit     320*200 16bit
  22. ; 320*240 16bit     320*240 16bit
  23.  
  24. ; Notes:
  25. ; For the lower resolutions in RGB mode,
  26. ; manual pixeldoubling in X has to be
  27. ; made, there's no way to obtain real
  28. ; 2*2 hardwaremode on RGB.
  29. ; Also, the RGB modes are all in "cinemascope"
  30. ; mode for total overscan.
  31.  
  32. ; --------------------------------------------------------------
  33. ; ------------- VGA 8bit 60Hz ----------------------------------
  34. ; --------------------------------------------------------------
  35.  
  36. vga60_8bit_160_100:
  37.     move.l   #$620046,$ffff8282.w
  38.     move.l   #$a023b,$ffff8286.w
  39.     move.l   #$34004b,$ffff828a.w
  40.     move.l   #$41903ff,$ffff82a2.w
  41.     move.l   #$3f0155,$ffff82a6.w
  42.     move.l   #$2e50415,$ffff82aa.w
  43.     move.w   #$200,$ffff820a.w
  44.     move.w   #$186,$ffff82c0.w
  45.     clr.w    $ffff8266.w
  46.     move.w   #$10,$ffff8266.w
  47.     move.w   #$1,$ffff82c2.w
  48.     move.w   #$50,$ffff8210.w
  49.     rts
  50.  
  51. vga60_8bit_160_120:
  52.     move.l   #$620046,$ffff8282.w
  53.     move.l   #$a023b,$ffff8286.w
  54.     move.l   #$34004b,$ffff828a.w
  55.     move.l   #$41903ff,$ffff82a2.w
  56.     move.l   #$3f012D,$ffff82a6.w
  57.     move.l   #$30D0415,$ffff82aa.w
  58.     move.w   #$200,$ffff820a.w
  59.     move.w   #$186,$ffff82c0.w
  60.     clr.w    $ffff8266.w
  61.     move.w   #$10,$ffff8266.w
  62.     move.w   #$1,$ffff82c2.w
  63.     move.w   #$50,$ffff8210.w
  64.     rts
  65.  
  66. vga60_8bit_320_200:
  67.     move.l   #$c6008D,$ffff8282.w
  68.     move.l   #$15029a,$ffff8286.w
  69.     move.l   #$7b0097,$ffff828a.w
  70.     move.l   #$41903ff,$ffff82a2.w
  71.     move.l   #$3f008D,$ffff82a6.w
  72.     move.l   #$3aD0415,$ffff82aa.w
  73.     move.w   #$200,$ffff820a.w
  74.     move.w   #$186,$ffff82c0.w
  75.     clr.w    $ffff8266.w
  76.     move.w   #$10,$ffff8266.w
  77.     move.w   #$5,$ffff82c2.w
  78.     move.w   #$a0,$ffff8210.w
  79.     rts
  80.  
  81. vga60_8bit_320_240:
  82.     move.l   #$c6008D,$ffff8282.w
  83.     move.l   #$15029a,$ffff8286.w
  84.     move.l   #$7b0097,$ffff828a.w
  85.     move.l   #$41903ff,$ffff82a2.w
  86.     move.l   #$3f003D,$ffff82a6.w
  87.     move.l   #$3fD0415,$ffff82aa.w
  88.     move.w   #$200,$ffff820a.w
  89.     move.w   #$186,$ffff82c0.w
  90.     clr.w    $ffff8266.w
  91.     move.w   #$10,$ffff8266.w
  92.     move.w   #$5,$ffff82c2.w
  93.     move.w   #$a0,$ffff8210.w
  94.     rts
  95.  
  96. vga60_8bit_640_400:
  97.     move.l   #$c6008D,$ffff8282.w
  98.     move.l   #$1502ab,$ffff8286.w
  99.     move.l   #$840097,$ffff828a.w
  100.     move.l   #$41903ff,$ffff82a2.w
  101.     move.l   #$3f008f,$ffff82a6.w
  102.     move.l   #$3af0415,$ffff82aa.w
  103.     move.w   #$200,$ffff820a.w
  104.     move.w   #$186,$ffff82c0.w
  105.     clr.w    $ffff8266.w
  106.     move.w   #$10,$ffff8266.w
  107.     move.w   #$8,$ffff82c2.w
  108.     move.w   #$140,$ffff8210.w
  109.     rts
  110.  
  111. vga60_8bit_640_480:
  112.     move.l   #$c6008D,$ffff8282.w
  113.     move.l   #$1502ab,$ffff8286.w
  114.     move.l   #$840097,$ffff828a.w
  115.     move.l   #$41903ff,$ffff82a2.w
  116.     move.l   #$3f003f,$ffff82a6.w
  117.     move.l   #$3ff0415,$ffff82aa.w
  118.     move.w   #$200,$ffff820a.w
  119.     move.w   #$186,$ffff82c0.w
  120.     clr.w    $ffff8266.w
  121.     move.w   #$10,$ffff8266.w
  122.     move.w   #$8,$ffff82c2.w
  123.     move.w   #$140,$ffff8210.w
  124.     rts
  125.  
  126. ; --------------------------------------------------------------
  127. ; ------------- VGA 8bit 100Hz ---------------------------------
  128. ; --------------------------------------------------------------
  129.  
  130. vga100_8bit_160_100:
  131.     move.l   #$620047,$ffff8282.w
  132.     move.l   #$c023c,$ffff8286.w
  133.     move.l   #$35004c,$ffff828a.w
  134.     move.l   #$275025b,$ffff82a2.w
  135.     move.l   #$410085,$ffff82a6.w
  136.     move.l   #$2150271,$ffff82aa.w
  137.     move.w   #$200,$ffff820a.w
  138.     move.w   #$186,$ffff82c0.w
  139.     clr.w    $ffff8266.w
  140.     move.w   #$10,$ffff8266.w
  141.     move.w   #$1,$ffff82c2.w
  142.     move.w   #$50,$ffff8210.w
  143.     rts
  144.  
  145. vga100_8bit_160_120:
  146.     move.l   #$620047,$ffff8282.w
  147.     move.l   #$c023c,$ffff8286.w
  148.     move.l   #$35004c,$ffff828a.w
  149.     move.l   #$275025b,$ffff82a2.w
  150.     move.l   #$41005D,$ffff82a6.w
  151.     move.l   #$23D0271,$ffff82aa.w
  152.     move.w   #$200,$ffff820a.w
  153.     move.w   #$186,$ffff82c0.w
  154.     clr.w    $ffff8266.w
  155.     move.w   #$10,$ffff8266.w
  156.     move.w   #$1,$ffff82c2.w
  157.     move.w   #$50,$ffff8210.w
  158.     rts
  159.  
  160. vga100_8bit_320_200:
  161.     move.l   #$c6008f,$ffff8282.w
  162.     move.l   #$18029c,$ffff8286.w
  163.     move.l   #$7D0098,$ffff828a.w
  164.     move.l   #$275025b,$ffff82a2.w
  165.     move.l   #$410085,$ffff82a6.w
  166.     move.l   #$2150271,$ffff82aa.w
  167.     move.w   #$200,$ffff820a.w
  168.     move.w   #$186,$ffff82c0.w
  169.     clr.w    $ffff8266.w
  170.     move.w   #$10,$ffff8266.w
  171.     move.w   #$4,$ffff82c2.w
  172.     move.w   #$a0,$ffff8210.w
  173.     rts
  174.  
  175. vga100_8bit_320_240:
  176.     move.l   #$c6008f,$ffff8282.w
  177.     move.l   #$18029c,$ffff8286.w
  178.     move.l   #$7D0098,$ffff828a.w
  179.     move.l   #$275025b,$ffff82a2.w
  180.     move.l   #$41005D,$ffff82a6.w
  181.     move.l   #$23D0271,$ffff82aa.w
  182.     move.w   #$200,$ffff820a.w
  183.     move.w   #$186,$ffff82c0.w
  184.     clr.w    $ffff8266.w
  185.     move.w   #$10,$ffff8266.w
  186.     move.w   #$4,$ffff82c2.w
  187.     move.w   #$a0,$ffff8210.w
  188.     rts
  189.  
  190. vga100_8bit_640_400:
  191.     move.l   #$c6008f,$ffff8282.w
  192.     move.l   #$1802aD,$ffff8286.w
  193.     move.l   #$860098,$ffff828a.w
  194.     move.l   #$274025b,$ffff82a2.w
  195.     move.l   #$410084,$ffff82a6.w
  196.     move.l   #$2140271,$ffff82aa.w
  197.     move.w   #$200,$ffff820a.w
  198.     move.w   #$186,$ffff82c0.w
  199.     clr.w    $ffff8266.w
  200.     move.w   #$10,$ffff8266.w
  201.     move.w   #$a,$ffff82c2.w
  202.     move.w   #$140,$ffff8210.w
  203.     rts
  204.  
  205. vga100_8bit_640_480:
  206.     move.l   #$c6008f,$ffff8282.w
  207.     move.l   #$1802aD,$ffff8286.w
  208.     move.l   #$860098,$ffff828a.w
  209.     move.l   #$274025b,$ffff82a2.w
  210.                move.l   #$41005c,$ffff82a6.w
  211.     move.l   #$23c0271,$ffff82aa.w
  212.     move.w   #$200,$ffff820a.w
  213.     move.w   #$186,$ffff82c0.w
  214.     clr.w    $ffff8266.w
  215.     move.w   #$10,$ffff8266.w
  216.     move.w   #$a,$ffff82c2.w
  217.     move.w   #$140,$ffff8210.w
  218.     rts
  219.  
  220. ; --------------------------------------------------------------
  221. ; ------------- VGA 16bit 60Hz ---------------------------------
  222. ; --------------------------------------------------------------
  223.  
  224. vga60_16bit_160_100:
  225.     move.l   #$620046,$ffff8282.w
  226.     move.l   #$a024D,$ffff8286.w
  227.     move.l   #$46004b,$ffff828a.w
  228.     move.l   #$41903ff,$ffff82a2.w
  229.     move.l   #$3f0155,$ffff82a6.w
  230.     move.l   #$2e50415,$ffff82aa.w
  231.     move.w   #$200,$ffff820a.w
  232.     move.w   #$186,$ffff82c0.w
  233.     clr.w    $ffff8266.w
  234.     move.w   #$100,$ffff8266.w
  235.     move.w   #$1,$ffff82c2.w
  236.     move.w   #$a0,$ffff8210.w
  237.     rts
  238.  
  239. vga60_16bit_320_100:
  240.     move.l   #$c6008D,$ffff8282.w
  241.     move.l   #$1502ac,$ffff8286.w
  242.     move.l   #$8D0097,$ffff828a.w
  243.     move.l   #$41903ff,$ffff82a2.w
  244.     move.l   #$3f0155,$ffff82a6.w
  245.     move.l   #$2e50415,$ffff82aa.w
  246.     move.w   #$200,$ffff820a.w
  247.     move.w   #$186,$ffff82c0.w
  248.     clr.w    $ffff8266.w
  249.     move.w   #$100,$ffff8266.w
  250.     move.w   #$5,$ffff82c2.w
  251.     move.w   #$140,$ffff8210.w
  252.     rts
  253.  
  254. vga60_16bit_160_120:
  255.     move.l   #$620046,$ffff8282.w
  256.     move.l   #$a024D,$ffff8286.w
  257.     move.l   #$46004b,$ffff828a.w
  258.     move.l   #$41903ff,$ffff82a2.w
  259.     move.l   #$3f012D,$ffff82a6.w
  260.     move.l   #$30D0415,$ffff82aa.w
  261.     move.w   #$200,$ffff820a.w
  262.     move.w   #$186,$ffff82c0.w
  263.     clr.w    $ffff8266.w
  264.     move.w   #$100,$ffff8266.w
  265.     move.w   #$1,$ffff82c2.w
  266.     move.w   #$a0,$ffff8210.w
  267.     rts
  268.  
  269. vga60_16bit_320_200:
  270.     move.l   #$c6008D,$ffff8282.w
  271.     move.l   #$1502ac,$ffff8286.w
  272.     move.l   #$8D0097,$ffff828a.w
  273.     move.l   #$41903ff,$ffff82a2.w
  274.     move.l   #$3f008D,$ffff82a6.w
  275.     move.l   #$3aD0415,$ffff82aa.w
  276.     move.w   #$200,$ffff820a.w
  277.     move.w   #$186,$ffff82c0.w
  278.     clr.w    $ffff8266.w
  279.     move.w   #$100,$ffff8266.w
  280.     move.w   #$5,$ffff82c2.w
  281.     move.w   #$140,$ffff8210.w
  282.     rts
  283.  
  284. vga60_16bit_320_240:
  285.     move.l   #$c6008D,$ffff8282.w
  286.     move.l   #$1502ac,$ffff8286.w
  287.     move.l   #$8D0097,$ffff828a.w
  288.     move.l   #$41903ff,$ffff82a2.w
  289.     move.l   #$3f003D,$ffff82a6.w
  290.     move.l   #$3fD0415,$ffff82aa.w
  291.     move.w   #$200,$ffff820a.w
  292.     move.w   #$186,$ffff82c0.w
  293.     clr.w    $ffff8266.w
  294.     move.w   #$100,$ffff8266.w
  295.     move.w   #$5,$ffff82c2.w
  296.     move.w   #$140,$ffff8210.w
  297.     rts
  298.  
  299. ; --------------------------------------------------------------
  300. ; ------------- VGA 16bit 100Hz --------------------------------
  301. ; --------------------------------------------------------------
  302.  
  303. vga100_16bit_160_100:
  304.     move.l   #$620047,$ffff8282.w
  305.     move.l   #$c024e,$ffff8286.w
  306.     move.l   #$47004c,$ffff828a.w
  307.     move.l   #$275025b,$ffff82a2.w
  308.     move.l   #$410085,$ffff82a6.w
  309.     move.l   #$2150271,$ffff82aa.w
  310.     move.w   #$200,$ffff820a.w
  311.     move.w   #$186,$ffff82c0.w
  312.     clr.w    $ffff8266.w
  313.     move.w   #$100,$ffff8266.w
  314.     move.w   #$1,$ffff82c2.w
  315.     move.w   #$a0,$ffff8210.w
  316.     rts
  317.  
  318. vga100_16bit_320_100:
  319.     move.l   #$c6008f,$ffff8282.w
  320.     move.l   #$1802ae,$ffff8286.w
  321.     move.l   #$8f0098,$ffff828a.w
  322.     move.l   #$275025b,$ffff82a2.w
  323.     move.l   #$410085,$ffff82a6.w
  324.     move.l   #$2150271,$ffff82aa.w
  325.     move.w   #$200,$ffff820a.w
  326.     move.w   #$186,$ffff82c0.w
  327.     clr.w    $ffff8266.w
  328.     move.w   #$100,$ffff8266.w
  329.     move.w   #$5,$ffff82c2.w
  330.     move.w   #$140,$ffff8210.w
  331.     rts
  332.  
  333. vga100_16bit_160_120:
  334.     move.l   #$620047,$ffff8282.w
  335.     move.l   #$c024e,$ffff8286.w
  336.     move.l   #$47004c,$ffff828a.w
  337.     move.l   #$275025b,$ffff82a2.w
  338.     move.l   #$41005D,$ffff82a6.w
  339.     move.l   #$23D0271,$ffff82aa.w
  340.     move.w   #$200,$ffff820a.w
  341.     move.w   #$186,$ffff82c0.w
  342.     clr.w    $ffff8266.w
  343.     move.w   #$100,$ffff8266.w
  344.     move.w   #$1,$ffff82c2.w
  345.     move.w   #$a0,$ffff8210.w
  346.     rts
  347.  
  348. vga100_16bit_320_200:
  349.     move.l   #$c6008f,$ffff8282.w
  350.     move.l   #$1802ae,$ffff8286.w
  351.     move.l   #$8f0098,$ffff828a.w
  352.     move.l   #$275025b,$ffff82a2.w
  353.     move.l   #$410085,$ffff82a6.w
  354.     move.l   #$2150271,$ffff82aa.w
  355.     move.w   #$200,$ffff820a.w
  356.     move.w   #$186,$ffff82c0.w
  357.     clr.w    $ffff8266.w
  358.     move.w   #$100,$ffff8266.w
  359.     move.w   #$4,$ffff82c2.w
  360.     move.w   #$140,$ffff8210.w
  361.     rts
  362.  
  363. vga100_16bit_320_240:
  364.     move.l   #$c6008f,$ffff8282.w
  365.     move.l   #$1802ae,$ffff8286.w
  366.     move.l   #$8f0098,$ffff828a.w
  367.     move.l   #$275025b,$ffff82a2.w
  368.     move.l   #$41005D,$ffff82a6.w
  369.     move.l   #$23D0271,$ffff82aa.w
  370.     move.w   #$200,$ffff820a.w
  371.     move.w   #$186,$ffff82c0.w
  372.     clr.w    $ffff8266.w
  373.     move.w   #$100,$ffff8266.w
  374.     move.w   #$4,$ffff82c2.w
  375.     move.w   #$140,$ffff8210.w
  376.     rts
  377.  
  378. ; --------------------------------------------------------------
  379. ; ------------- RGB 8bit 50Hz ----------------------------------
  380. ; --------------------------------------------------------------
  381.  
  382.  
  383. rgb50_8bit_320_100:
  384.     move.l   #$c700a0,$ffff8282.w
  385.     move.l   #$1f02ba,$ffff8286.w
  386.     move.l   #$8900ab,$ffff828a.w
  387.     move.l   #$2710265,$ffff82a2.w
  388.     move.l   #$2f0081,$ffff82a6.w
  389.     move.l   #$211026b,$ffff82aa.w
  390.     move.w   #$200,$ffff820a.w
  391.     move.w   #$185,$ffff82c0.w
  392.     clr.w    $ffff8266.w
  393.     move.w   #$10,$ffff8266.w
  394.     move.w   #$1,$ffff82c2.w
  395.     move.w   #$a0,$ffff8210.w
  396.     rts
  397.  
  398. rgb50_8bit_320_120:
  399.     move.l   #$c700a0,$ffff8282.w
  400.     move.l   #$1f02ba,$ffff8286.w
  401.     move.l   #$8900ab,$ffff828a.w
  402.     move.l   #$2710265,$ffff82a2.w
  403.     move.l   #$2f0059,$ffff82a6.w
  404.     move.l   #$239026b,$ffff82aa.w
  405.     move.w   #$200,$ffff820a.w
  406.     move.w   #$185,$ffff82c0.w
  407.     clr.w    $ffff8266.w
  408.     move.w   #$10,$ffff8266.w
  409.     move.w   #$1,$ffff82c2.w
  410.     move.w   #$a0,$ffff8210.w
  411.     rts
  412.  
  413. rgb50_8bit_320_200:
  414.     move.l   #$c700a0,$ffff8282.w
  415.     move.l   #$1f02ba,$ffff8286.w
  416.     move.l   #$8900ab,$ffff828a.w
  417.     move.l   #$2710265,$ffff82a2.w
  418.     move.l   #$2f0081,$ffff82a6.w
  419.     move.l   #$211026b,$ffff82aa.w
  420.     move.w   #$200,$ffff820a.w
  421.     move.w   #$185,$ffff82c0.w
  422.     clr.w    $ffff8266.w
  423.     move.w   #$10,$ffff8266.w
  424.     move.w   #$0,$ffff82c2.w
  425.     move.w   #$a0,$ffff8210.w
  426.     rts
  427.  
  428. rgb50_8bit_320_240:
  429.     move.l   #$c700a0,$ffff8282.w
  430.     move.l   #$1f02ba,$ffff8286.w
  431.     move.l   #$8900ab,$ffff828a.w
  432.     move.l   #$2710265,$ffff82a2.w
  433.     move.l   #$2f0059,$ffff82a6.w
  434.     move.l   #$239026b,$ffff82aa.w
  435.     move.w   #$200,$ffff820a.w
  436.     move.w   #$185,$ffff82c0.w
  437.     clr.w    $ffff8266.w
  438.     move.w   #$10,$ffff8266.w
  439.     move.w   #$0,$ffff82c2.w
  440.     move.w   #$a0,$ffff8210.w
  441.     rts
  442.  
  443. rgb50_8bit_640_400:
  444.     move.l   #$1900141,$ffff8282.w
  445.     move.l   #$3e0005,$ffff8286.w
  446.     move.l   #$1240156,$ffff828a.w
  447.     move.l   #$2700265,$ffff82a2.w
  448.     move.l   #$2f0080,$ffff82a6.w
  449.     move.l   #$210026b,$ffff82aa.w
  450.     move.w   #$200,$ffff820a.w
  451.     move.w   #$185,$ffff82c0.w
  452.     clr.w    $ffff8266.w
  453.     move.w   #$10,$ffff8266.w
  454.     move.w   #$6,$ffff82c2.w
  455.     move.w   #$140,$ffff8210.w
  456.     rts
  457.  
  458. rgb50_8bit_640_480:
  459.     move.l   #$1900141,$ffff8282.w
  460.     move.l   #$3e0005,$ffff8286.w
  461.     move.l   #$1240156,$ffff828a.w
  462.     move.l   #$2700265,$ffff82a2.w
  463.     move.l   #$2f0058,$ffff82a6.w
  464.     move.l   #$238026b,$ffff82aa.w
  465.     move.w   #$200,$ffff820a.w
  466.     move.w   #$185,$ffff82c0.w
  467.     clr.w    $ffff8266.w
  468.     move.w   #$10,$ffff8266.w
  469.     move.w   #$6,$ffff82c2.w
  470.     move.w   #$140,$ffff8210.w
  471.     rts
  472.  
  473. ; --------------------------------------------------------------
  474. ; ------------- RGB 8bit 60Hz ----------------------------------
  475. ; --------------------------------------------------------------
  476.  
  477.  
  478. rgb60_8bit_320_100:
  479.     move.l   #$c7009f,$ffff8282.w
  480.     move.l   #$1f02b9,$ffff8286.w
  481.     move.l   #$8800ab,$ffff828a.w
  482.     move.l   #$20d0201,$ffff82a2.w
  483.     move.l   #$170041,$ffff82a6.w
  484.     move.l   #$1d10207,$ffff82aa.w
  485.     move.w   #$200,$ffff820a.w
  486.     move.w   #$185,$ffff82c0.w
  487.     clr.w    $ffff8266.w
  488.     move.w   #$10,$ffff8266.w
  489.     move.w   #$1,$ffff82c2.w
  490.     move.w   #$a0,$ffff8210.w
  491.     rts
  492.  
  493. rgb60_8bit_320_120:
  494.     move.l   #$c7009f,$ffff8282.w
  495.     move.l   #$1f02b9,$ffff8286.w
  496.     move.l   #$8800ab,$ffff828a.w
  497.     move.l   #$20d0201,$ffff82a2.w
  498.     move.l   #$170019,$ffff82a6.w
  499.     move.l   #$1f90207,$ffff82aa.w
  500.     move.w   #$200,$ffff820a.w
  501.     move.w   #$185,$ffff82c0.w
  502.     clr.w    $ffff8266.w
  503.     move.w   #$10,$ffff8266.w
  504.     move.w   #$1,$ffff82c2.w
  505.     move.w   #$a0,$ffff8210.w
  506.     rts
  507.  
  508. rgb60_8bit_320_200:
  509.     move.l   #$c7009f,$ffff8282.w
  510.                move.l   #$1f02b9,$ffff8286.w
  511.     move.l   #$8800ab,$ffff828a.w
  512.     move.l   #$20d0201,$ffff82a2.w
  513.     move.l   #$170043,$ffff82a6.w
  514.     move.l   #$1d30207,$ffff82aa.w
  515.     move.w   #$200,$ffff820a.w
  516.     move.w   #$185,$ffff82c0.w
  517.     clr.w    $ffff8266.w
  518.     move.w   #$10,$ffff8266.w
  519.     move.w   #$0,$ffff82c2.w
  520.     move.w   #$a0,$ffff8210.w
  521.     rts
  522.  
  523. rgb60_8bit_320_240:
  524.     move.l   #$c7009f,$ffff8282.w
  525.     move.l   #$1f02b9,$ffff8286.w
  526.     move.l   #$8800ab,$ffff828a.w
  527.     move.l   #$20d0201,$ffff82a2.w
  528.     move.l   #$17001b,$ffff82a6.w
  529.     move.l   #$1fb0207,$ffff82aa.w
  530.     move.w   #$200,$ffff820a.w
  531.     move.w   #$185,$ffff82c0.w
  532.     clr.w    $ffff8266.w
  533.     move.w   #$10,$ffff8266.w
  534.     move.w   #$0,$ffff82c2.w
  535.     move.w   #$a0,$ffff8210.w
  536.     rts
  537.  
  538.  
  539. rgb60_8bit_640_400:
  540.     move.l   #$1910140,$ffff8282.w
  541.     move.l   #$3e0005,$ffff8286.w
  542.     move.l   #$1230157,$ffff828a.w
  543.     move.l   #$20c0201,$ffff82a2.w
  544.     move.l   #$170042,$ffff82a6.w
  545.     move.l   #$1d20207,$ffff82aa.w
  546.     move.w   #$200,$ffff820a.w
  547.     move.w   #$185,$ffff82c0.w
  548.     clr.w    $ffff8266.w
  549.     move.w   #$10,$ffff8266.w
  550.     move.w   #$6,$ffff82c2.w
  551.     move.w   #$140,$ffff8210.w
  552.     rts
  553.  
  554. rgb60_8bit_640_480:
  555.     move.l   #$1910140,$ffff8282.w
  556.     move.l   #$3e0005,$ffff8286.w
  557.     move.l   #$1230157,$ffff828a.w
  558.     move.l   #$20c0201,$ffff82a2.w
  559.     move.l   #$17002e,$ffff82a6.w
  560.     move.l   #$1e60207,$ffff82aa.w
  561.     move.w   #$200,$ffff820a.w
  562.     move.w   #$185,$ffff82c0.w
  563.     clr.w    $ffff8266.w
  564.     move.w   #$10,$ffff8266.w
  565.     move.w   #$6,$ffff82c2.w
  566.     move.w   #$140,$ffff8210.w
  567.     rts
  568.  
  569. ; --------------------------------------------------------------
  570. ; ------------- RGB 16bit 50Hz ---------------------------------
  571. ; --------------------------------------------------------------
  572.  
  573.  
  574. rgb50_16bit_320_100:
  575.     move.l   #$c700a0,$ffff8282.w
  576.     move.l   #$1f0003,$ffff8286.w
  577.     move.l   #$9b00ab,$ffff828a.w
  578.     move.l   #$2710265,$ffff82a2.w
  579.     move.l   #$2f0081,$ffff82a6.w
  580.     move.l   #$211026b,$ffff82aa.w
  581.     move.w   #$200,$ffff820a.w
  582.     move.w   #$185,$ffff82c0.w
  583.     clr.w    $ffff8266.w
  584.     move.w   #$100,$ffff8266.w
  585.     move.w   #$1,$ffff82c2.w
  586.     move.w   #$140,$ffff8210.w
  587.     rts
  588.  
  589. rgb50_16bit_320_120:
  590.     move.l   #$c700a0,$ffff8282.w
  591.     move.l   #$1f0003,$ffff8286.w
  592.     move.l   #$9b00ab,$ffff828a.w
  593.     move.l   #$2710265,$ffff82a2.w
  594.     move.l   #$2f0059,$ffff82a6.w
  595.     move.l   #$239026b,$ffff82aa.w
  596.     move.w   #$200,$ffff820a.w
  597.     move.w   #$185,$ffff82c0.w
  598.     clr.w    $ffff8266.w
  599.     move.w   #$100,$ffff8266.w
  600.     move.w   #$1,$ffff82c2.w
  601.     move.w   #$140,$ffff8210.w
  602.     rts
  603.  
  604. rgb50_16bit_320_200:
  605.     move.l   #$c700a0,$ffff8282.w
  606.     move.l   #$1f0003,$ffff8286.w
  607.     move.l   #$9b00ab,$ffff828a.w
  608.     move.l   #$2710265,$ffff82a2.w
  609.     move.l   #$2f0081,$ffff82a6.w
  610.     move.l   #$211026b,$ffff82aa.w
  611.     move.w   #$200,$ffff820a.w
  612.     move.w   #$185,$ffff82c0.w
  613.     clr.w    $ffff8266.w
  614.     move.w   #$100,$ffff8266.w
  615.     move.w   #$0,$ffff82c2.w
  616.     move.w   #$140,$ffff8210.w
  617.     rts
  618.  
  619. rgb50_16bit_320_240:
  620.     move.l   #$c700a0,$ffff8282.w
  621.     move.l   #$1f0003,$ffff8286.w
  622.     move.l   #$9b00ab,$ffff828a.w
  623.     move.l   #$2710265,$ffff82a2.w
  624.     move.l   #$2f0059,$ffff82a6.w
  625.     move.l   #$239026b,$ffff82aa.w
  626.     move.w   #$200,$ffff820a.w
  627.     move.w   #$185,$ffff82c0.w
  628.     clr.w    $ffff8266.w
  629.     move.w   #$100,$ffff8266.w
  630.     move.w   #$0,$ffff82c2.w
  631.     move.w   #$140,$ffff8210.w
  632.     rts
  633.  
  634.  
  635. ; --------------------------------------------------------------
  636. ; ------------- RGB 16bit 60Hz ---------------------------------
  637. ; --------------------------------------------------------------
  638.  
  639.  
  640. rgb60_16bit_320_100:
  641.     move.l   #$c7009f,$ffff8282.w
  642.     move.l   #$1f0002,$ffff8286.w
  643.     move.l   #$9a00ab,$ffff828a.w
  644.     move.l   #$20d0201,$ffff82a2.w
  645.     move.l   #$170041,$ffff82a6.w
  646.     move.l   #$1d10207,$ffff82aa.w
  647.     move.w   #$200,$ffff820a.w
  648.     move.w   #$185,$ffff82c0.w
  649.     clr.w    $ffff8266.w
  650.     move.w   #$100,$ffff8266.w
  651.     move.w   #$1,$ffff82c2.w
  652.     move.w   #$140,$ffff8210.w
  653.     rts
  654.  
  655. rgb60_16bit_320_120:
  656.     move.l   #$c7009f,$ffff8282.w
  657.     move.l   #$1f0002,$ffff8286.w
  658.     move.l   #$9a00ab,$ffff828a.w
  659.     move.l   #$20d0201,$ffff82a2.w
  660.     move.l   #$170019,$ffff82a6.w
  661.     move.l   #$1f90207,$ffff82aa.w
  662.     move.w   #$200,$ffff820a.w
  663.     move.w   #$185,$ffff82c0.w
  664.     clr.w    $ffff8266.w
  665.     move.w   #$100,$ffff8266.w
  666.     move.w   #$1,$ffff82c2.w
  667.     move.w   #$140,$ffff8210.w
  668.     rts
  669.  
  670. rgb60_16bit_320_200:
  671.     move.l   #$c7009f,$ffff8282.w
  672.     move.l   #$1f0002,$ffff8286.w
  673.     move.l   #$9a00ab,$ffff828a.w
  674.     move.l   #$20d0201,$ffff82a2.w
  675.     move.l   #$170043,$ffff82a6.w
  676.     move.l   #$1d30207,$ffff82aa.w
  677.     move.w   #$200,$ffff820a.w
  678.     move.w   #$185,$ffff82c0.w
  679.     clr.w    $ffff8266.w
  680.     move.w   #$100,$ffff8266.w
  681.     move.w   #$0,$ffff82c2.w
  682.     move.w   #$140,$ffff8210.w
  683.     rts
  684.  
  685. rgb60_16bit_320_240:
  686.     move.l   #$c7009f,$ffff8282.w
  687.     move.l   #$1f0002,$ffff8286.w
  688.     move.l   #$9a00ab,$ffff828a.w
  689.     move.l   #$20d0201,$ffff82a2.w
  690.     move.l   #$17001b,$ffff82a6.w
  691.     move.l   #$1fb0207,$ffff82aa.w
  692.     move.w   #$200,$ffff820a.w
  693.     move.w   #$185,$ffff82c0.w
  694.     clr.w    $ffff8266.w
  695.     move.w   #$100,$ffff8266.w
  696.     move.w   #$0,$ffff82c2.w
  697.     move.w   #$140,$ffff8210.w
  698.     rts
  699.  
  700. * Saves the current falcon resolution to an internal buffer.
  701. SAVE_FV:
  702.     lea    save_fv+6,a1
  703.     move.l    $ffff820e.w,(a1)+        * offset & vwrap
  704.     move.w    $ffff8266.w,(a1)+        * spshift
  705.     lea    $ffff8282.w,a0            * horizontal control registers
  706. .loop1    move.w    (a0)+,(a1)+
  707.     cmpa.w    #$8292,a0
  708.     bne.s    .loop1
  709.     lea    $ffff82a2.w,a0            * vertical control registers
  710. .loop2    move.w    (a0)+,(a1)+
  711.     cmpa.w    #$82ae,a0
  712.     bne.s    .loop2
  713.     move.w    $ffff82c2.w,(a1)+        * video control
  714.     move.w    $ffff82c0.w,(a1)+        * video clock
  715.     move.b    $ffff8260.w,(a1)+        * shifter resolution
  716.     move.b    $ffff820a.w,(a1)+        * video sync mode
  717.     rts
  718.  
  719. * Changes screenresolution the fast way.. Do this synced to the VBL for
  720. * the smooth res-change.
  721. * INPUT: a0: address of fv2-buffer
  722. CHANGE_FVFAST:
  723.     addq    #6,a0                * Skip header + monitortype
  724.     lea    (a0),a6
  725.  
  726.     move.l    (a0)+,$ffff820e.w        * offset & vwrap
  727.     move.w    (a0)+,$ffff8266.w        * spshift
  728.     lea    $ffff8282.w,a1            * horizontal control registers
  729. .loop1    move.w    (a0)+,(a1)+
  730.     cmpa.w    #$8292,a1
  731.     bne.s    .loop1
  732.     lea    $ffff82a2.w,a1            * vertical control registers
  733. .loop2    move.w    (a0)+,(a1)+
  734.     cmpa.w    #$82ae,a1
  735.     bne.s    .loop2
  736.     move.w    (a0)+,$ffff82c2.w        * video control
  737.     move.w    (a0)+,$ffff82c0.w        * video clock
  738.     cmpi.w    #$50,6(a6)            * ST resolution?
  739.     blt.s    .stres
  740.     addq    #1,a0                * st res
  741.     bra.s    .fres
  742. .stres:    move.b    (a0)+,$ffff8260.w        * st res
  743. .fres:    move.b    (a0)+,$ffff820a.w        * video sync mode
  744.     rts
  745.  
  746. SAVE_FALCPAL:
  747.     move.w    $468.w,d0
  748. .waitvbl:
  749.     cmp.w    $468.w,d0
  750.     beq.s    .waitvbl
  751.     lea    falcsave_pal,a0
  752.     lea    $ffff9800.w,a1
  753.     moveq    #128-1,d7
  754. .loop:    move.l    (a1)+,(a0)+
  755.     move.l    (a1)+,(a0)+
  756.     dbra    d7,.loop
  757.     rts
  758.  
  759. RESTORE_FALCPAL:
  760.     move.w    $468.w,d0
  761. .waitvbl:
  762.     cmp.w    $468.w,d0
  763.     beq.s    .waitvbl
  764.     lea    falcsave_pal,a1
  765.     lea    $ffff9800.w,a0
  766.     moveq    #128-1,d7
  767. .loop:    move.l    (a1)+,(a0)+
  768.     move.l    (a1)+,(a0)+
  769.     dbra    d7,.loop
  770.     rts
  771.  
  772. * INPUT: a0: screenaddress
  773. CLEAR_320200TSCR:
  774.     moveq    #0,d0
  775.     move.l    d0,d1
  776.     move.l    d0,d2
  777.     move.l    d1,d3
  778.     move.l    d2,d4
  779.     move.l    d3,d5
  780.     move.l    d4,d6
  781.     moveq    #123-1,d7
  782.     move.l    d0,a1
  783.     move.l    d1,a2
  784.     move.l    d2,a3
  785.     move.l    d3,a4
  786.     move.l    d4,a5
  787.     move.l    d5,a6
  788.     adda.l    #320*200*2,a0
  789. .loop:
  790.     REPT    20
  791.     movem.l    d0-d6/a1-a6,-(a0)
  792.     ENDR
  793.     dbra    d7,.loop
  794.     movem.l    d0-d6/a1-a6,-(a0)
  795.     movem.l    d0-d6,-(a0)
  796.     rts
  797.  
  798. * INPUT: a0: screenaddress
  799. CLEAR_320100TSCR:
  800.     moveq    #0,d0
  801.     move.l    d0,d1
  802.     move.l    d0,d2
  803.     move.l    d1,d3
  804.     move.l    d2,d4
  805.     move.l    d3,d5
  806.     move.l    d4,d6
  807.     moveq    #100-1,d7
  808.     move.l    d0,a1
  809.     move.l    d1,a2
  810.     move.l    d2,a3
  811.     move.l    d3,a4
  812.     move.l    d4,a5
  813.     move.l    d5,a6
  814.     adda.l    #320*100*2,a0
  815. .loop:
  816.     REPT    12
  817.     movem.l    d0-d6/a1-a6,-(a0)
  818.     ENDR
  819.     movem.l    d0-d3,-(a0)
  820.     dbra    d7,.loop
  821.     rts
  822.  
  823. * INPUT: a0: screenaddress
  824. CLEAR_3202008SCR:
  825.     moveq    #0,d0
  826.     move.l    d0,d1
  827.     move.l    d0,d2
  828.     move.l    d1,d3
  829.     move.l    d2,d4
  830.     move.l    d3,d5
  831.     move.l    d4,d6
  832.     moveq    #100-1,d7
  833.     move.l    d0,a1
  834.     move.l    d1,a2
  835.     move.l    d2,a3
  836.     move.l    d3,a4
  837.     move.l    d4,a5
  838.     move.l    d5,a6
  839.     adda.l    #320*100*2,a0
  840. .loop:
  841.     REPT    12
  842.     movem.l    d0-d6/a1-a6,-(a0)
  843.     ENDR
  844.     movem.l    d0-d3,-(a0)
  845.     dbra    d7,.loop
  846.     rts
  847.  
  848. COPY_PIC3202008:
  849.     moveq    #100-1,d7
  850. .loop:    movem.l    (a1)+,d0-d6/a2-a6
  851.     movem.l    d0-d6/a2-a6,(a0)
  852.     movem.l    (a1)+,d0-d6/a2-a6
  853.     movem.l    d0-d6/a2-a6,48(a0)
  854.     movem.l    (a1)+,d0-d6/a2-a6
  855.     movem.l    d0-d6/a2-a6,96(a0)
  856.     movem.l    (a1)+,d0-d6/a2-a6
  857.     movem.l    d0-d6/a2-a6,144(a0)
  858.     movem.l    (a1)+,d0-d6/a2-a6
  859.     movem.l    d0-d6/a2-a6,192(a0)
  860.     movem.l    (a1)+,d0-d6/a2-a6
  861.     movem.l    d0-d6/a2-a6,240(a0)
  862.     movem.l    (a1)+,d0-d6/a2-a6
  863.     movem.l    d0-d6/a2-a6,288(a0)
  864.     movem.l    (a1)+,d0-d6/a2-a6
  865.     movem.l    d0-d6/a2-a6,336(a0)
  866.     movem.l    (a1)+,d0-d6/a2-a6
  867.     movem.l    d0-d6/a2-a6,384(a0)
  868.     movem.l    (a1)+,d0-d6/a2-a6
  869.     movem.l    d0-d6/a2-a6,432(a0)
  870.     movem.l    (a1)+,d0-d6/a2-a6
  871.     movem.l    d0-d6/a2-a6,480(a0)
  872.     movem.l    (a1)+,d0-d6/a2-a6
  873.     movem.l    d0-d6/a2-a6,528(a0)
  874.     movem.l    (a1)+,d0-d6/a2-a6
  875.     movem.l    d0-d6/a2-a6,576(a0)
  876.     movem.l    (a1)+,d0-d3
  877.     movem.l    d0-d3,624(a0)
  878.     lea    640(a0),a0
  879.     dbra    d7,.loop
  880.     rts
  881.  
  882.     BSS
  883.  
  884. save_fv:
  885.     DS.W    24
  886. falcsave_pal:
  887.     DS.L    256
  888.