67HZHIBYTLOBYTPLRHPLRVPLRRATEFRMLSTPTRFRMDATAPPSFLAINITANIMATFST2SPEEBYTNUMPLRTEMPMOVEPOINTERFRAMEFRMSIZPLRFRMMEFRAMEMEFRMLSTSIZTOTFRMLSTSIZBUFFERFRAMEMEMFRMLSTMEMPMOVERANIMATANIMATEMFILMFILLBUFFEPLRFRAMEFRMLSTMEPMBASOFFSETFRAMELISPARAMBASPMBAPMBUVVBLKCRITICAPPPP@@@@@@ @ !"#$%&'()*+,-./012 %%ǠΠҠϠ%%報(TTProgram to introduce the Animate Machine Language routine with the walking man288Copyright (C) 1982 by David Fox and Mitchell Waite<F A@Pdn*6-P:'AV,*Calculate High Bytex(6-&$AV(Calculate Low Byte$囖GG9@,9@,9@,9@,9@,9@,Y +@AR@8 One moment please...YTurn off cursor, print message* B*Initialize Routine strings' AP'Set up memory locations" Ap"Set up Player area$ B$Read frames into RAM* B *Set up parameter addresses"" B0"Turn on interrupts,'' }ǠΠϠ6OO FPress a number from 1 to 9 to control his speed or 0's to single step.J6-A 6-@wT A^6-@h r6-@ A|5#@@K:5ATAULF:A,"42@@6-@LFootsteps@F:A,"42@$@@6-@%%2 F:AT,"AUAH)@6-&@H0ATAU< H6-!@ 6-@  A AF:,A(A-&@ 8, %@ $ Man$ A$Point to Frame Lists-&@ 8,8,%$@$ .6-?:<,8$B++-&@ 6-8, A 8,8,%@ $" "6-$%@ 6-$ 6-%@ 6-$(;A(,;,;, 6-C:, 6-C:, 6-C:, 6-C:, 6-C:, 6-C:,$X((b:6-F:A,&@:Set aside Player-Missile areal,BBy,Tell ANTIC where PM RAM isv(6-AV$(Find PM Base address-@968,-%A($%A9Set addresses of Players9'A%@$@%@9Color him peach AAY@BASet PM 2 line resolution, Players enabled-B2w@-Enable Player displayR'6-?:<8,<A<,RUse memory fill routine to clear Players$$''6-.' 6-B'-&@L'.68,-%.Store addresses of frame dataV' 6-%`'E 8,EPoke Frame size at beginning of each set of frame dataj'-@&@t'"~'8,%'   '$'* ŠŠӛ*$,Ҡ.,;A,8,mm67@,.ZPLb&0ߝShhhF&B,mm67@,.ZFIT`L*H *hMNNML,67A,.LP,Š囒,;A,,mm67@,.ZPLbآY0H PN򩀍+. 23P0ֽ:,mm67@,.Z>ɩ. %:IX.: 23>>,mm67A,.Z >PPPHȱh∱QNPmQJnRR8eeP*RR,++67Aq,.QP..PP-̠Z-;@A,d-<<67@,.)hhhhhhh̥ͥ`-$--.!!.(6-A$(Parameter Base address.. 6-.Hi Byte of PLR0 Location goes here.06-%@0Address of a 128 byte buffer/46-%@4Initialize Frame Animate routine&/-@0/=68,-%@%=Player horizontal "shadow" registers:/;68,-%@%;Player vertical "shadow" registersD/868,-%@%8Animate rate "shadow" registersN/768,-%@%$@7Pointer to Frame Listsb/ /:6-AH:Deferred Vertical Blank Interrupt Vector/6-@fCritical Flag/W6-@6-@'6-@36-@WControl bits for the four Players/ 6-%/D6-?:<<@<,DIMPORTANT: Clear out parameter area/H6-8, A"HPoke Hi Byte of Player 0 into PMBAS/2 6- A2Poke address of buffer/%@f0p0z09&@,0-&@058,-%$5Points to start of each Frame List0 6-8, A0+ 8,+Put in address of Frame Data08,%@0@-@@Make up a Frame List (numbers 1 thru FRAMES)08,%%@0 078,%%@7End of frame list marker0 0$0226@6Open CRITICAL "valve", set up detour36-%@ A"3' 'Set VBLANK vector to PMOVER,3%@636-%@ A@3,%@,Points PMOVER to ANIMATEJ3%@r3;;Close CRITICAL "valve", routine installed3$3 NŠ>NHN55Number of Frames, Frame Size, Number of PlayersRN. (Walking Man)\N 5,19,2R RFrame 1, Player 0R770,0,0,0,0,0,0,3,15,29,59,51,7,7,15,252,224,112,48&RFrame 2, Player 00R990,0,0,0,0,0,0,1,7,15,31,55,55,7,111,125,248,192,193:RFrame 3, Player 0DR;;0,0,0,0,0,0,3,7,15,31,31,31,31,222,254,251,231,206,15NRFrame 4, Player 0XR==1,3,3,3,1,7,15,31,30,62,62,63,63,60,124,120,112,112,252bRFrame 5, Player 0lR::0,0,1,1,1,0,7,31,31,31,31,31,15,15,13,31,123,112,124vRFrame 1, Player 1RHH0,28,62,62,62,28,240,240,240,240,251,255,220,192,192,227,118,60,24RFrame 2, Player 1RKK0,0,56,124,124,124,56,224,224,224,224,246,254,192,128,192,224,224,248RFrame 3, Player 1REE0,112,248,248,248,112,192,192,128,128,128,224,224,0,0,0,0,0,128RFrame 4, Player 1R55192,224,224,224,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0RFrame 5, Player 1RII0,224,240,240,240,224,128,128,128,128,176,240,0,128,192,128,192,0,0 D:EX10.BAS