home *** CD-ROM | disk | FTP | other *** search
/ ST-Computer Leser 2002 January / STC_CD_01_2002.iso / SCENE / IMATROLL / SRC / SYS / VIDEO.S < prev   
Text File  |  2001-12-08  |  3KB  |  117 lines

  1.  
  2. ; Videolibrary for Falcon demoshell
  3. ;
  4. ; Anders Eriksson
  5. ; ae@dhs.nu
  6. ;
  7. ; January 29, 2000
  8. ;
  9. ; video.s
  10.  
  11.  
  12. ; Available resolutions are as follows:
  13. ;
  14. ; jsr video_1              jsr video_2
  15. ;     VGA    144*100    16bit        VGA    288*200    16bit
  16. ;    RGB    288*100    16bit        RGB    288*200    16bit
  17. ;
  18. ; jsr video_3              jsr video_4
  19. ;    VGA    288*200    8bit        VGA    576*400    8bit
  20. ;    RGB    288*200    8bit        RGB    576*400 8bit
  21. ;
  22. ; jsr video_5              jsr video_6
  23. ;    VGA    320*240    16bit        VGA    320*240    8bit
  24. ;    RGB    320*240 16bit        RGB    320*240    8bit
  25. ;
  26. ; jsr video_7
  27. ;    VGA    640*480    8bit
  28. ;    RGB    640*480    8bit
  29. ;
  30. ; All resolutions are running on the 25 MHz videl clock, so it
  31. ; should be compatible to all accelerators with modfied 32 MHz
  32. ; videl clock. That also means that all reolutions have wide
  33. ; overscan on RGB.
  34. ;
  35. ; Please notice that "video_1" differs between VGA and RGB.
  36. ; It means 2*2 effects should have different routines depending
  37. ; on the monitor.
  38. ;
  39. ;     tst.w    monitor
  40. ;     beq    vgaloop         to select routine.
  41. ;    bra    rgbloop
  42.  
  43.  
  44. ; --------------------------------------------------------------
  45.         section    text
  46. ; --------------------------------------------------------------
  47.  
  48. ;video_1:    lea.l    videolib+36*4*0,a0            ;144/288*100 16bit
  49. ;        bra.s    setvideo                ;
  50.  
  51. video_2:    lea.l    videolib+36*4*1,a0            ;288*200 16bit
  52.         bra.s    setvideo                ;
  53.  
  54. ;video_3:    lea.l    videolib+36*4*2,a0            ;288*200 8bit
  55. ;        bra.s    setvideo                ;
  56.  
  57. ;video_4:    lea.l    videolib+36*4*3,a0            ;576*400 8bit
  58. ;        bra.s    setvideo                ;
  59.  
  60. video_5:    lea.l    videolib+36*4*4,a0            ;320*240 16bit
  61.         bra.s    setvideo                ;
  62.  
  63. ;video_6:    lea.l    videolib+36*4*5,a0            ;320*240 8bit
  64. ;        bra.s    setvideo                ;
  65.  
  66. ;video_7:    lea.l    videolib+36*4*6,a0            ;640*480 8bit
  67. ;
  68.  
  69.     
  70. setvideo:    tst.w    monitor                    ;vga?
  71.         bne.s    .rgb                    ;>rgb
  72.         cmp.w    #60,vga_freq                ;60Hz vga?
  73.         bne.s    .vga100                    ;>100Hz
  74.         bra.s    .setres                    ;set 60Hz vga
  75. .vga100:    lea.l    36*1(a0),a0                ;set 100Hz vga
  76.         bra.s    .setres                    ;
  77. .rgb:        cmp.w    #50,rgb_freq                ;50Hz rgb?
  78.         bne.s    .rgb60                    ;>60Hz
  79.         lea.l    36*2(a0),a0                ;set 50Hz rgb
  80.         bra.s    .setres                    ;
  81. .rgb60:        lea.l    36*3(a0),a0                ;set 60Hz rgb
  82.  
  83.  
  84. .setres:    move.l    (a0)+,$ffff8282.w            ;horizontal hold timer
  85.         move.l    (a0)+,$ffff8286.w            ;horizonal border end
  86.         move.l    (a0)+,$ffff828a.w            ;horizontal display end
  87.         move.l    (a0)+,$ffff82a2.w            ;vertical frequency timer
  88.         move.l    (a0)+,$ffff82a6.w            ;vertical border end
  89.         move.l    (a0)+,$ffff82aa.w            ;vertical display end
  90.         move.w    (a0)+,$ffff820a.w            ;video sync mode
  91.         move.w    (a0)+,$ffff82c0.w            ;video clock
  92.         clr.w    $ffff8266.w                ;spshift - videl colourmode
  93.         move.l    (a0)+,d0                ;
  94.         bmi.s    .st_comp                ;
  95.         clr.b    $ffff8260.w                ;st shifter resolution
  96.         move.w    d0,$ffff8266.w                ;spshift - videl colourmode
  97.         bra.s    .set_video                ;
  98. .st_comp:    clr.w    $ffff8266.w                ;spshift - videl colourmode
  99.         swap    d0                    ;
  100.         move.b    d0,$ffff8260.w                ;st shifter resolution
  101. .set_video:    move.w    (a0)+,$ffff82c2.w            ;vco - videl pixel width
  102.         move.w    (a0)+,$ffff8210.w            ;scanlinewidth
  103.         rts                        ;
  104.  
  105.  
  106. ; --------------------------------------------------------------
  107.         section    data
  108. ; --------------------------------------------------------------
  109.  
  110. videolib:    incbin    'sys\video.dat'
  111.  
  112.  
  113.  
  114. ; --------------------------------------------------------------
  115.         section    text
  116. ; --------------------------------------------------------------
  117.