þþ X;X;EI(X;2X;SAVE#D:RELOC>DEMO1.M65<X;FX;..PX;LIST#D:RELOC>DEMO1.LSTZX;dX;nX;xX;ASM,,#D:RELOC>DEMO1.COM‚X;ŒEX;This demo will send a command directly to the CP in snapshot #4.–&X;This command is held in T.BUFFER. X;ª „JOHNþ´X;¾0È>•D:SNAPSHOT>SYSLIB.M65Ò ‡G.STARTÜQ>`æ P‡G.STARTð Q„JOHNúP Q„JOHN;PS> ;;Point to 1st byte in snapshot's vector table. The first byte is a flag."X;And we copy it.,P6ECOPY.SNAP.TABLE@"JCOPY.SNAP.TABLETQ^$hPŠSNAP.TABLEr&ŠSNAP.TABLE| ˆC.S.T.B1†%>Q@7šPŠSNAP.TABLE¤3®Q@7¸PŠSNAP.TABLE ˆC.S.T.B2Ì3ÖQ@7àPŠSNAP.TABLEê3ôQ@7þPŠSNAP.TABLEX;QŠSNAP.TABLEP&QŠSNAP.TABLE0P:HCOPY.P.BUFFERD!‹MAJOR.ERRORNX;X'X;Now to copy the correct addresses,bFX;and place them into our snapshot program buffer before copying itl+X;to snapshot's internal program buffer.vX;€Ð ˆC.P.B.B0ÚQˆP.BUFFER8äP@7î3ø)>P.BUFFER.LENGTH HˆC.P.B.B0 X;QŠSNAP.TABLE P*QŠSNAP.TABLE4P>%>HCOPY.T.BUFFERRQˆT.BUFFER8\P@7f3p)>T.BUFFER.LENGTHzHCOPY.T.BUFFER„X;Ž%>P˜$>¢ ‰COPY.TEXT¬ Q„TEXT9¶R>ÿÀ F„EXITÊP@X7;; SAVMSCÔ2Þ3èH‰COPY.TEXTò„EXITüQ‚CHR>ÿ F„EXITQ>ÿ$P‚CH.%>8X;BcX;Now to set Snapshot's internal flag named PROGRAM to any non-zero value. This starts executingLX;your snapshot program.VX;`QŠSNAP.TABLEjPtQŠSNAP.TABLE~PˆQ>’P@7œ!@ :;;Goto DOS.¦„TEXT°, A¢** Ðòåóó áîù ëåù ôï óôáòô äåíï® **A=ÿºŠSNAP.TABLE ÄX;Î\X;These two buffers are an example of how to program Snapshot HD to execute a batch file.ØX;â ˆP.BUFFERì A‚S4A;;Snap to #4ö AWA==;;Wait 1/2 sec ACA;;Send $ to CP ‹MY.T.BUFFER ˆT.BUFFER AEA(P.BUFFER.LENGTH ˆP.BUFFER2 ˆT.BUFFER< A-D1:>DEMOBAT.BATA=›=FX;PT.BUFFER.LENGTH ˆT.BUFFERZ„HEREd>–D:>SNAPSHOT>MACROS.M65n‹MAJOR.ERRORx ‡PRINTSI‚ A}A=ƒEOL=ƒEOLŒ0 A¤ýÅÒÒÏÒ­ The Snapshot HD ProfessionalA=ƒEOL–1 A¥Programming Utility MUST be loaded inA=ƒEOL  A†first!A=ƒEOL=ÿª!@ :´â¾ ‡G.START