þþ‰ X;X;EI(X;2X;SAVE#D:RELOC>DEMO4.M65<X;FX;..PX;LIST#D:RELOC>DEMO4.LSTZX;dX;nX;xX;ASM,,#D:RELOC>DEMO4.COM‚X;ŒFX;This demo will switch to snap #4, attenpt to run D3:>UTT>UNARC on–VX;a file named D1:>DEMO.ARC, unarc it to D1:> , wait 10 seconds, and then snap back X;to snapshot #1.ªX;´ „JOHNþ¾X;È0Ò>•D:SNAPSHOT>SYSLIB.M65Ü ‡G.STARTæQ>`ð P‡G.STARTú Q„JOHNP Q„JOHN;"PS> ;;Point to 1st byte in snapshot's vector table. The first byte is a flag.,X;And we copy it.6P@ECOPY.SNAP.TABLEJ"TCOPY.SNAP.TABLE^Qh$rPŠSNAP.TABLE|&Š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@7PŠSNAP.TABLEX;QŠSNAP.TABLE&P0QŠSNAP.TABLE:PDHCOPY.P.BUFFERN!‹MAJOR.ERRORXX;b'X;Now to copy the correct addresses,lFX;and place them into our snapshot program buffer before copying itv+X;to snapshot's internal program buffer.€X;ŠÚ ˆC.P.B.B0äQˆP.BUFFER8îP@7ø3)>P.BUFFER.LENGTH  HˆC.P.B.B0X; QŠSNAP.TABLE*P4QŠSNAP.TABLE>PH%>RCOPY.T.BUFFER\QˆT.BUFFER8fP@7p3z)>T.BUFFER.LENGTH„HCOPY.T.BUFFERŽX;˜%>P¢$>¬ ‰COPY.TEXT¶ Q„TEXT9ÀR>ÿÊ F„EXITÔP@X7;; SAVMSCÞ2è3òH‰COPY.TEXTü„EXITQ‚CHR>ÿ F„EXIT$Q>ÿ.P‚CH8%>BX;LcX;Now to set Snapshot's internal flag named PROGRAM to any non-zero value. This starts executingVX;your snapshot program.`X;jQŠSNAP.TABLEtP~QŠ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( AWA==Z;;Wait 10 SEC2 A‚S1A< AEAFP.BUFFER.LENGTH ˆP.BUFFERP ˆT.BUFFERZ/ A¡D3:>UTT>UNARC D1:DEMOARC.ARC D1:>A=›=dX;nT.BUFFER.LENGTH ˆT.BUFFERx„HERE‚>–D:>SNAPSHOT>MACROS.M65Œ‹MAJOR.ERROR– ‡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