home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
M.u.C.S. Disc 2000
/
MUCS2000.iso
/
falcon
/
whip.031
/
vlm
/
raytun11
/
fscr.i
< prev
next >
Wrap
Text File
|
1999-05-02
|
23KB
|
888 lines
* Falcon screenroutines:
*
* + resolutionswitchers
* + screenclearers
* + screencopiers
* + pallettesetters/savers
; VIDEO-modes available
; VGA (60 & 100Hz) RGB (50 & 60Hz)
; 160*100 8bit 320*100 8bit
; 160*120 8bit 320*120 8bit
; 320*200 8bit 320*200 8bit
; 320*240 8bit 320*240 8bit
; 640*400 8bit 640*400 8bit
; 640*480 8bit 640*480 8bit
; 160*100 16bit 320*100 16bit
; 320*100 16bit
; 160*120 16bit 320*120 16bit
; 320*200 16bit 320*200 16bit
; 320*240 16bit 320*240 16bit
; Notes:
; For the lower resolutions in RGB mode,
; manual pixeldoubling in X has to be
; made, there's no way to obtain real
; 2*2 hardwaremode on RGB.
; Also, the RGB modes are all in "cinemascope"
; mode for total overscan.
; --------------------------------------------------------------
; ------------- VGA 8bit 60Hz ----------------------------------
; --------------------------------------------------------------
vga60_8bit_160_100:
move.l #$620046,$ffff8282.w
move.l #$a023b,$ffff8286.w
move.l #$34004b,$ffff828a.w
move.l #$41903ff,$ffff82a2.w
move.l #$3f0155,$ffff82a6.w
move.l #$2e50415,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$50,$ffff8210.w
rts
vga60_8bit_160_120:
move.l #$620046,$ffff8282.w
move.l #$a023b,$ffff8286.w
move.l #$34004b,$ffff828a.w
move.l #$41903ff,$ffff82a2.w
move.l #$3f012D,$ffff82a6.w
move.l #$30D0415,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$50,$ffff8210.w
rts
vga60_8bit_320_200:
move.l #$c6008D,$ffff8282.w
move.l #$15029a,$ffff8286.w
move.l #$7b0097,$ffff828a.w
move.l #$41903ff,$ffff82a2.w
move.l #$3f008D,$ffff82a6.w
move.l #$3aD0415,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$5,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
vga60_8bit_320_240:
move.l #$c6008D,$ffff8282.w
move.l #$15029a,$ffff8286.w
move.l #$7b0097,$ffff828a.w
move.l #$41903ff,$ffff82a2.w
move.l #$3f003D,$ffff82a6.w
move.l #$3fD0415,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$5,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
vga60_8bit_640_400:
move.l #$c6008D,$ffff8282.w
move.l #$1502ab,$ffff8286.w
move.l #$840097,$ffff828a.w
move.l #$41903ff,$ffff82a2.w
move.l #$3f008f,$ffff82a6.w
move.l #$3af0415,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$8,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
vga60_8bit_640_480:
move.l #$c6008D,$ffff8282.w
move.l #$1502ab,$ffff8286.w
move.l #$840097,$ffff828a.w
move.l #$41903ff,$ffff82a2.w
move.l #$3f003f,$ffff82a6.w
move.l #$3ff0415,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$8,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
; --------------------------------------------------------------
; ------------- VGA 8bit 100Hz ---------------------------------
; --------------------------------------------------------------
vga100_8bit_160_100:
move.l #$620047,$ffff8282.w
move.l #$c023c,$ffff8286.w
move.l #$35004c,$ffff828a.w
move.l #$275025b,$ffff82a2.w
move.l #$410085,$ffff82a6.w
move.l #$2150271,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$50,$ffff8210.w
rts
vga100_8bit_160_120:
move.l #$620047,$ffff8282.w
move.l #$c023c,$ffff8286.w
move.l #$35004c,$ffff828a.w
move.l #$275025b,$ffff82a2.w
move.l #$41005D,$ffff82a6.w
move.l #$23D0271,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$50,$ffff8210.w
rts
vga100_8bit_320_200:
move.l #$c6008f,$ffff8282.w
move.l #$18029c,$ffff8286.w
move.l #$7D0098,$ffff828a.w
move.l #$275025b,$ffff82a2.w
move.l #$410085,$ffff82a6.w
move.l #$2150271,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$4,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
vga100_8bit_320_240:
move.l #$c6008f,$ffff8282.w
move.l #$18029c,$ffff8286.w
move.l #$7D0098,$ffff828a.w
move.l #$275025b,$ffff82a2.w
move.l #$41005D,$ffff82a6.w
move.l #$23D0271,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$4,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
vga100_8bit_640_400:
move.l #$c6008f,$ffff8282.w
move.l #$1802aD,$ffff8286.w
move.l #$860098,$ffff828a.w
move.l #$274025b,$ffff82a2.w
move.l #$410084,$ffff82a6.w
move.l #$2140271,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$a,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
vga100_8bit_640_480:
move.l #$c6008f,$ffff8282.w
move.l #$1802aD,$ffff8286.w
move.l #$860098,$ffff828a.w
move.l #$274025b,$ffff82a2.w
move.l #$41005c,$ffff82a6.w
move.l #$23c0271,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$a,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
; --------------------------------------------------------------
; ------------- VGA 16bit 60Hz ---------------------------------
; --------------------------------------------------------------
vga60_16bit_160_100:
move.l #$620046,$ffff8282.w
move.l #$a024D,$ffff8286.w
move.l #$46004b,$ffff828a.w
move.l #$41903ff,$ffff82a2.w
move.l #$3f0155,$ffff82a6.w
move.l #$2e50415,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
vga60_16bit_320_100:
move.l #$c6008D,$ffff8282.w
move.l #$1502ac,$ffff8286.w
move.l #$8D0097,$ffff828a.w
move.l #$41903ff,$ffff82a2.w
move.l #$3f0155,$ffff82a6.w
move.l #$2e50415,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$5,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
vga60_16bit_160_120:
move.l #$620046,$ffff8282.w
move.l #$a024D,$ffff8286.w
move.l #$46004b,$ffff828a.w
move.l #$41903ff,$ffff82a2.w
move.l #$3f012D,$ffff82a6.w
move.l #$30D0415,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
vga60_16bit_320_200:
move.l #$c6008D,$ffff8282.w
move.l #$1502ac,$ffff8286.w
move.l #$8D0097,$ffff828a.w
move.l #$41903ff,$ffff82a2.w
move.l #$3f008D,$ffff82a6.w
move.l #$3aD0415,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$5,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
vga60_16bit_320_240:
move.l #$c6008D,$ffff8282.w
move.l #$1502ac,$ffff8286.w
move.l #$8D0097,$ffff828a.w
move.l #$41903ff,$ffff82a2.w
move.l #$3f003D,$ffff82a6.w
move.l #$3fD0415,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$5,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
; --------------------------------------------------------------
; ------------- VGA 16bit 100Hz --------------------------------
; --------------------------------------------------------------
vga100_16bit_160_100:
move.l #$620047,$ffff8282.w
move.l #$c024e,$ffff8286.w
move.l #$47004c,$ffff828a.w
move.l #$275025b,$ffff82a2.w
move.l #$410085,$ffff82a6.w
move.l #$2150271,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
vga100_16bit_320_100:
move.l #$c6008f,$ffff8282.w
move.l #$1802ae,$ffff8286.w
move.l #$8f0098,$ffff828a.w
move.l #$275025b,$ffff82a2.w
move.l #$410085,$ffff82a6.w
move.l #$2150271,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$5,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
vga100_16bit_160_120:
move.l #$620047,$ffff8282.w
move.l #$c024e,$ffff8286.w
move.l #$47004c,$ffff828a.w
move.l #$275025b,$ffff82a2.w
move.l #$41005D,$ffff82a6.w
move.l #$23D0271,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
vga100_16bit_320_200:
move.l #$c6008f,$ffff8282.w
move.l #$1802ae,$ffff8286.w
move.l #$8f0098,$ffff828a.w
move.l #$275025b,$ffff82a2.w
move.l #$410085,$ffff82a6.w
move.l #$2150271,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$4,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
vga100_16bit_320_240:
move.l #$c6008f,$ffff8282.w
move.l #$1802ae,$ffff8286.w
move.l #$8f0098,$ffff828a.w
move.l #$275025b,$ffff82a2.w
move.l #$41005D,$ffff82a6.w
move.l #$23D0271,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$186,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$4,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
; --------------------------------------------------------------
; ------------- RGB 8bit 50Hz ----------------------------------
; --------------------------------------------------------------
rgb50_8bit_320_100:
move.l #$c700a0,$ffff8282.w
move.l #$1f02ba,$ffff8286.w
move.l #$8900ab,$ffff828a.w
move.l #$2710265,$ffff82a2.w
move.l #$2f0081,$ffff82a6.w
move.l #$211026b,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
rgb50_8bit_320_120:
move.l #$c700a0,$ffff8282.w
move.l #$1f02ba,$ffff8286.w
move.l #$8900ab,$ffff828a.w
move.l #$2710265,$ffff82a2.w
move.l #$2f0059,$ffff82a6.w
move.l #$239026b,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
rgb50_8bit_320_200:
move.l #$c700a0,$ffff8282.w
move.l #$1f02ba,$ffff8286.w
move.l #$8900ab,$ffff828a.w
move.l #$2710265,$ffff82a2.w
move.l #$2f0081,$ffff82a6.w
move.l #$211026b,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$0,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
rgb50_8bit_320_240:
move.l #$c700a0,$ffff8282.w
move.l #$1f02ba,$ffff8286.w
move.l #$8900ab,$ffff828a.w
move.l #$2710265,$ffff82a2.w
move.l #$2f0059,$ffff82a6.w
move.l #$239026b,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$0,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
rgb50_8bit_640_400:
move.l #$1900141,$ffff8282.w
move.l #$3e0005,$ffff8286.w
move.l #$1240156,$ffff828a.w
move.l #$2700265,$ffff82a2.w
move.l #$2f0080,$ffff82a6.w
move.l #$210026b,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$6,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
rgb50_8bit_640_480:
move.l #$1900141,$ffff8282.w
move.l #$3e0005,$ffff8286.w
move.l #$1240156,$ffff828a.w
move.l #$2700265,$ffff82a2.w
move.l #$2f0058,$ffff82a6.w
move.l #$238026b,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$6,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
; --------------------------------------------------------------
; ------------- RGB 8bit 60Hz ----------------------------------
; --------------------------------------------------------------
rgb60_8bit_320_100:
move.l #$c7009f,$ffff8282.w
move.l #$1f02b9,$ffff8286.w
move.l #$8800ab,$ffff828a.w
move.l #$20d0201,$ffff82a2.w
move.l #$170041,$ffff82a6.w
move.l #$1d10207,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
rgb60_8bit_320_120:
move.l #$c7009f,$ffff8282.w
move.l #$1f02b9,$ffff8286.w
move.l #$8800ab,$ffff828a.w
move.l #$20d0201,$ffff82a2.w
move.l #$170019,$ffff82a6.w
move.l #$1f90207,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
rgb60_8bit_320_200:
move.l #$c7009f,$ffff8282.w
move.l #$1f02b9,$ffff8286.w
move.l #$8800ab,$ffff828a.w
move.l #$20d0201,$ffff82a2.w
move.l #$170043,$ffff82a6.w
move.l #$1d30207,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$0,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
rgb60_8bit_320_240:
move.l #$c7009f,$ffff8282.w
move.l #$1f02b9,$ffff8286.w
move.l #$8800ab,$ffff828a.w
move.l #$20d0201,$ffff82a2.w
move.l #$17001b,$ffff82a6.w
move.l #$1fb0207,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$0,$ffff82c2.w
move.w #$a0,$ffff8210.w
rts
rgb60_8bit_640_400:
move.l #$1910140,$ffff8282.w
move.l #$3e0005,$ffff8286.w
move.l #$1230157,$ffff828a.w
move.l #$20c0201,$ffff82a2.w
move.l #$170042,$ffff82a6.w
move.l #$1d20207,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$6,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
rgb60_8bit_640_480:
move.l #$1910140,$ffff8282.w
move.l #$3e0005,$ffff8286.w
move.l #$1230157,$ffff828a.w
move.l #$20c0201,$ffff82a2.w
move.l #$17002e,$ffff82a6.w
move.l #$1e60207,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$10,$ffff8266.w
move.w #$6,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
; --------------------------------------------------------------
; ------------- RGB 16bit 50Hz ---------------------------------
; --------------------------------------------------------------
rgb50_16bit_320_100:
move.l #$c700a0,$ffff8282.w
move.l #$1f0003,$ffff8286.w
move.l #$9b00ab,$ffff828a.w
move.l #$2710265,$ffff82a2.w
move.l #$2f0081,$ffff82a6.w
move.l #$211026b,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
rgb50_16bit_320_120:
move.l #$c700a0,$ffff8282.w
move.l #$1f0003,$ffff8286.w
move.l #$9b00ab,$ffff828a.w
move.l #$2710265,$ffff82a2.w
move.l #$2f0059,$ffff82a6.w
move.l #$239026b,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
rgb50_16bit_320_200:
move.l #$c700a0,$ffff8282.w
move.l #$1f0003,$ffff8286.w
move.l #$9b00ab,$ffff828a.w
move.l #$2710265,$ffff82a2.w
move.l #$2f0081,$ffff82a6.w
move.l #$211026b,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$0,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
rgb50_16bit_320_240:
move.l #$c700a0,$ffff8282.w
move.l #$1f0003,$ffff8286.w
move.l #$9b00ab,$ffff828a.w
move.l #$2710265,$ffff82a2.w
move.l #$2f0059,$ffff82a6.w
move.l #$239026b,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$0,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
; --------------------------------------------------------------
; ------------- RGB 16bit 60Hz ---------------------------------
; --------------------------------------------------------------
rgb60_16bit_320_100:
move.l #$c7009f,$ffff8282.w
move.l #$1f0002,$ffff8286.w
move.l #$9a00ab,$ffff828a.w
move.l #$20d0201,$ffff82a2.w
move.l #$170041,$ffff82a6.w
move.l #$1d10207,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
rgb60_16bit_320_120:
move.l #$c7009f,$ffff8282.w
move.l #$1f0002,$ffff8286.w
move.l #$9a00ab,$ffff828a.w
move.l #$20d0201,$ffff82a2.w
move.l #$170019,$ffff82a6.w
move.l #$1f90207,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$1,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
rgb60_16bit_320_200:
move.l #$c7009f,$ffff8282.w
move.l #$1f0002,$ffff8286.w
move.l #$9a00ab,$ffff828a.w
move.l #$20d0201,$ffff82a2.w
move.l #$170043,$ffff82a6.w
move.l #$1d30207,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$0,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
rgb60_16bit_320_240:
move.l #$c7009f,$ffff8282.w
move.l #$1f0002,$ffff8286.w
move.l #$9a00ab,$ffff828a.w
move.l #$20d0201,$ffff82a2.w
move.l #$17001b,$ffff82a6.w
move.l #$1fb0207,$ffff82aa.w
move.w #$200,$ffff820a.w
move.w #$185,$ffff82c0.w
clr.w $ffff8266.w
move.w #$100,$ffff8266.w
move.w #$0,$ffff82c2.w
move.w #$140,$ffff8210.w
rts
* Saves the current falcon resolution to an internal buffer.
SAVE_FV:
lea save_fv+6,a1
move.l $ffff820e.w,(a1)+ * offset & vwrap
move.w $ffff8266.w,(a1)+ * spshift
lea $ffff8282.w,a0 * horizontal control registers
.loop1 move.w (a0)+,(a1)+
cmpa.w #$8292,a0
bne.s .loop1
lea $ffff82a2.w,a0 * vertical control registers
.loop2 move.w (a0)+,(a1)+
cmpa.w #$82ae,a0
bne.s .loop2
move.w $ffff82c2.w,(a1)+ * video control
move.w $ffff82c0.w,(a1)+ * video clock
move.b $ffff8260.w,(a1)+ * shifter resolution
move.b $ffff820a.w,(a1)+ * video sync mode
rts
* Changes screenresolution the fast way.. Do this synced to the VBL for
* the smooth res-change.
* INPUT: a0: address of fv2-buffer
CHANGE_FVFAST:
addq #6,a0 * Skip header + monitortype
lea (a0),a6
move.l (a0)+,$ffff820e.w * offset & vwrap
move.w (a0)+,$ffff8266.w * spshift
lea $ffff8282.w,a1 * horizontal control registers
.loop1 move.w (a0)+,(a1)+
cmpa.w #$8292,a1
bne.s .loop1
lea $ffff82a2.w,a1 * vertical control registers
.loop2 move.w (a0)+,(a1)+
cmpa.w #$82ae,a1
bne.s .loop2
move.w (a0)+,$ffff82c2.w * video control
move.w (a0)+,$ffff82c0.w * video clock
cmpi.w #$50,6(a6) * ST resolution?
blt.s .stres
addq #1,a0 * st res
bra.s .fres
.stres: move.b (a0)+,$ffff8260.w * st res
.fres: move.b (a0)+,$ffff820a.w * video sync mode
rts
SAVE_FALCPAL:
move.w $468.w,d0
.waitvbl:
cmp.w $468.w,d0
beq.s .waitvbl
lea falcsave_pal,a0
lea $ffff9800.w,a1
moveq #128-1,d7
.loop: move.l (a1)+,(a0)+
move.l (a1)+,(a0)+
dbra d7,.loop
rts
RESTORE_FALCPAL:
move.w $468.w,d0
.waitvbl:
cmp.w $468.w,d0
beq.s .waitvbl
lea falcsave_pal,a1
lea $ffff9800.w,a0
moveq #128-1,d7
.loop: move.l (a1)+,(a0)+
move.l (a1)+,(a0)+
dbra d7,.loop
rts
* INPUT: a0: screenaddress
CLEAR_320200TSCR:
moveq #0,d0
move.l d0,d1
move.l d0,d2
move.l d1,d3
move.l d2,d4
move.l d3,d5
move.l d4,d6
moveq #123-1,d7
move.l d0,a1
move.l d1,a2
move.l d2,a3
move.l d3,a4
move.l d4,a5
move.l d5,a6
adda.l #320*200*2,a0
.loop:
REPT 20
movem.l d0-d6/a1-a6,-(a0)
ENDR
dbra d7,.loop
movem.l d0-d6/a1-a6,-(a0)
movem.l d0-d6,-(a0)
rts
* INPUT: a0: screenaddress
CLEAR_320100TSCR:
moveq #0,d0
move.l d0,d1
move.l d0,d2
move.l d1,d3
move.l d2,d4
move.l d3,d5
move.l d4,d6
moveq #100-1,d7
move.l d0,a1
move.l d1,a2
move.l d2,a3
move.l d3,a4
move.l d4,a5
move.l d5,a6
adda.l #320*100*2,a0
.loop:
REPT 12
movem.l d0-d6/a1-a6,-(a0)
ENDR
movem.l d0-d3,-(a0)
dbra d7,.loop
rts
* INPUT: a0: screenaddress
CLEAR_3202008SCR:
moveq #0,d0
move.l d0,d1
move.l d0,d2
move.l d1,d3
move.l d2,d4
move.l d3,d5
move.l d4,d6
moveq #100-1,d7
move.l d0,a1
move.l d1,a2
move.l d2,a3
move.l d3,a4
move.l d4,a5
move.l d5,a6
adda.l #320*100*2,a0
.loop:
REPT 12
movem.l d0-d6/a1-a6,-(a0)
ENDR
movem.l d0-d3,-(a0)
dbra d7,.loop
rts
COPY_PIC3202008:
moveq #100-1,d7
.loop: movem.l (a1)+,d0-d6/a2-a6
movem.l d0-d6/a2-a6,(a0)
movem.l (a1)+,d0-d6/a2-a6
movem.l d0-d6/a2-a6,48(a0)
movem.l (a1)+,d0-d6/a2-a6
movem.l d0-d6/a2-a6,96(a0)
movem.l (a1)+,d0-d6/a2-a6
movem.l d0-d6/a2-a6,144(a0)
movem.l (a1)+,d0-d6/a2-a6
movem.l d0-d6/a2-a6,192(a0)
movem.l (a1)+,d0-d6/a2-a6
movem.l d0-d6/a2-a6,240(a0)
movem.l (a1)+,d0-d6/a2-a6
movem.l d0-d6/a2-a6,288(a0)
movem.l (a1)+,d0-d6/a2-a6
movem.l d0-d6/a2-a6,336(a0)
movem.l (a1)+,d0-d6/a2-a6
movem.l d0-d6/a2-a6,384(a0)
movem.l (a1)+,d0-d6/a2-a6
movem.l d0-d6/a2-a6,432(a0)
movem.l (a1)+,d0-d6/a2-a6
movem.l d0-d6/a2-a6,480(a0)
movem.l (a1)+,d0-d6/a2-a6
movem.l d0-d6/a2-a6,528(a0)
movem.l (a1)+,d0-d6/a2-a6
movem.l d0-d6/a2-a6,576(a0)
movem.l (a1)+,d0-d3
movem.l d0-d3,624(a0)
lea 640(a0),a0
dbra d7,.loop
rts
BSS
save_fv:
DS.W 24
falcsave_pal:
DS.L 256