[comp.sys.amiga] Flipping bitmaps

kirkb@cod.NOSC.MIL (Kirk Baker) (10/18/89)

[]

	Well, here it is, by popular demand I have chosen to post this to
comp.sys.amiga, so that everyone can read it.  The flip bitmap routines
were written in assembler (manx/aztec).  Also there is a test program that
will flip the workbench/active screen 50 times in the x and y directions.
These routines are hereby placed in the public domain.  If you use them in
a commercial product, then I would appreciate it if you would mention my
name somewhere in the documentation.  If you improve upon these routines, then
please mail me a copy.  Thank you.   Also, the Zoom routines are on their
way, as soon as I port them from JForth assembler to manx.

kirkb@cod.nosc.mil.UUCP


begin 600 flip.zoo
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
MR;)B#!@M8MAH@2/'1),*%(Q(XV8,FSIDRH`0P9-.G31TTKQQ\Z+HT:1+7:`1
MH9.G3Z!"B;HQBE0I4Z==EXH),Z>,5*H[>_X,.O2,G#!PT*09,^?%&3-XSE95
MBW7H0C)*]2I8**?.&#H@DFQ]ZA5DV9**N4)UX[@,"Q5/X)1QPR2-F+=R\J!(
ML2-GFS`\1RO8HR`B8<.(IXR14V9SR3EC2KNF4_CP1Z1-X)84TT8WQ*(@TI1N
M?=P,"!0A4$1FO+0RB!X@,F_N_#E,:!1:)7MU8;![:!$L8*18'S&E=C>)%X>%
M7QYTGI(G([*N"$=.43/@5>%&&&*P(10=;X#PAF;P33<?%VZ(0!IS$Y6!!U(H
MJ&?<0WU0"`)NU\4G7G5DE=&"#T$<EH8=9<A&VV8;@D!<B";@=J(0P,$5HQEO
MD(1"&B'"L$-R(/``0@U")K?""BEXN!]%!1V$(QW!P8$%"L1-6%&4<$Q99198
MMJ$E1!U&E(9STLDW664I@#`$&V^4Q9U]:8Y(68D3=A@0W*?$_0(`````````
M````````````````````````````````````````````````````````_(/<
MI\3]`@$Q#0``E`P``%(3:4`5A7X```!E`````0```````````&UA:V5F:6QE
M```````*`!RK@`````"``4````!`*2,H``"-)&%29`J('B",L$D#1T@:.G-<
MO$FX$`Z5,G/H2%2@P`B3)%"H%*2B`P0)%`()3DFA``0;-Q097LPH,6;#AQ$G
MMF`S9H8,CAY!BIQ"Q<63D@IE8M0XIN68,2!6,+$YDRE'!0$!W*?$_0(`````
M````````````````````````````````````````````````````````````
M_(/<I\3]`@'>$```>`T``%(3AT*;-#X%``!F`P```0```````````%)%041-
M10`````````*`!SOE@````"``4````!`*2,H``"E%`E"I$D1!0H27'ES)P0(
M$$'$O*E#!X2,&B#@E'D#ATT9$&W"I/%(!N3',!(I@LP#P@B;-'"$I*'3)`P<
M+"#"N"GI$J9,FC:S*)`SD4X:-V7FN'AXI0P;-BQ`)`&!)HR=CV3*C$F3M22=
M-R#TO`%+!TV9-B#JP,FY$\2<,FW+G@7Q%<28-VW@N)B31VF8-FG.A&&A8`[9
MJA5UYGF#%,0=-&#3S`%QE$X9.4DMESQ*URS:.R/9@!!S4HQ'NF#/E*DHM\U2
MJ8Y#*R#M%BZ9HV<Z?Q2+%P11BD>3YIQLF/%PV"?@O)%#YX1NM'5#NL$S_&T;
MTY>7HDBBH,Z<.F&>LO3^48F1Y66/MV$)1TZ:D')89KW*AF,;N!79Z#P#7G6*
MAU14Y<8:("Q6!VHY/>489`J$-%(99+P&A4=AO`6"1Q7=!\(:;C!$F1D%3D25
M52>YP1Y1V+4Q&6CIR>5;4<$IE9`33U!1A`Y,F>4&"&:\!`<<N.4TVDPAK66<
MBUGDA(=D(1X8$DMF'.458KIAEA"388RFWQ@$AH%9ED>:=6$99I2E4TES</71
M&R"Z*`:1-D5U9F=AL&960NZ=@8:9;:69%0ALZC8D'46..-EM<]BDD9<0OA8@
MDTR2-D88Y#4I1T)O$FJ3H:.5`1<()_RV$X3.J34:2^'5-X8<%5HF!PHIO):&
M"V4LA>$)Q(7!DH$)5765D#;0$`,>,L``@UNK>KHC1W"]EL5$<@Q:*&@*?BE>
MIR#84(,-Q!H;6U:$)3#G8Y\:R*./E-$1E;G4BG9"?6\Y!X>7%07J)IQZ`8@&
MDV2\D51"'698ADYT5C0O<X"V*6:FA3)Y!F-E1#6323I-9J;!]":L&Z;X4C99
MP"#8(5D:V`&ZHXMS)/LI"B*7<8=RS,7Z4!(@LGO91W7U"-.5%8D1!I=1R;4C
MNQ.Q@::G@C*\J<]<7IC&&A]-?$>%G9JQW$>\)C`''?0V^A`2'M:E6F*B3LED
M>V^DB",(1<QD5K0A02UHRIC!E1#*?WUTQW(EI30JFFGH<=)DJ;ZQ:JN7P1J;
M@F>D<554RX'0KZ`ZPW'ECEF^=7"='RD-AYQQZ2@Y6%F:-C'3!-;E8LN@N9$;
MW<J&^_-==;AAE.L\1GZOIFOANF^9)R"T1AIRK"$&$'=%V&'*+@#&!D(!`=RG
MQ/T"````````````````````````````````````````````````````````
)`````````/R#
`
end