10 ;›20 ;›30 .OPT NO LIST›40 ;›50 ;SAVE#D:RELOC>DEMO3.M65›60 ;›70 ;..›80 ;LIST#D:RELOC>DEMO3.LST›90 ;›0100 ;›0110 ;›0120 ;ASM,,#D:RELOC>DEMO3.COM›0130 ;›0140 ;This demo shows you how to snap to snapshot #1.›0150 ;›0160 JOHN = $06FE›0170 ;›0180 *= $3000›0190 .INCLUDE #D:SNAPSHOT>SYSLIB.M65›0200 G.START›0210 LDA #$60›0220 STA G.START›0230 LDA JOHN+1›0240 STA $01›0250 LDA JOHN›0260 SEC ›0270 SBC #$09 ;Point to 1st byte in snapshot's vector table. The first byte is a flag.›0280 ;And we copy it.›0290 STA $00›0300 BCS COPY.SNAP.TABLE›0310 DEC $01›0320 COPY.SNAP.TABLE›0330 LDA $00›0340 LDX $01›0350 STA SNAP.TABLE›0360 STX SNAP.TABLE+1›0370 C.S.T.B1›0380 LDY #1›0390 LDA ($00),Y›0400 STA SNAP.TABLE+2›0410 INY ›0420 LDA ($00),Y›0430 STA SNAP.TABLE+3›0440 C.S.T.B2›0450 INY ›0460 LDA ($00),Y›0470 STA SNAP.TABLE+4›0480 INY ›0490 LDA ($00),Y›0500 STA SNAP.TABLE+5›0510 ;›0520 LDA SNAP.TABLE+2›0530 STA $00›0540 LDA SNAP.TABLE+3›0550 STA $01›0560 BNE COPY.P.BUFFER›0570 JMP MAJOR.ERROR›0580 COPY.P.BUFFER›0590 LDY #0›0600 C.P.B.B0›0610 LDA P.BUFFER,Y›0620 STA ($00),Y›0630 INY ›0640 CPY #P.BUFFER.LENGTH+1›0650 BNE C.P.B.B0›0660 ;›0670 ;›0680 LDY #80›0690 LDX #0›0700 COPY.TEXT›0710 LDA TEXT,X›0720 CMP #$FF›0730 BEQ EXIT›0740 STA (88),Y ; SAVMSC›0750 INX ›0760 INY ›0770 BNE COPY.TEXT›0780 EXIT›0790 LDA CH›0800 CMP #255›0810 BEQ EXIT›0820 LDA #255›0830 STA CH›0840 LDY #0›0850 ;›0860 ;Now to set Snapshot's internal flag named PROGRAM to any non-zero value. This starts executing›0870 ;your snapshot program.›0880 ;›0890 LDA SNAP.TABLE›0900 STA $00›0910 LDA SNAP.TABLE+1›0920 STA $01›0930 LDA #1›0940 STA ($00),Y›0950 JMP ($0A) ;Goto DOS.›0960 TEXT›0970 .SBYTE "** Ðòåóó áîù ëåù ôï óôáòô äåíï® **",$FF›0980 SNAP.TABLE *= *+6›0990 ;›1000 ;This program buffer is an example of how to program Snapshot HD to snap to a certain snapshot.›1010 ;›1020 P.BUFFER›1030 .BYTE "S1" ;Snap to #1›1040 .BYTE "E"›1050 P.BUFFER.LENGTH = *-P.BUFFER›1060 T.BUFFER›1070 .BYTE "Ôèéó âõææåò óåòöåó îï ðõòðïóå éî ôèéó äåíï®",$9B,$FF›1080 ;›1090 T.BUFFER.LENGTH = *-T.BUFFER›1100 HERE›1110 .INCLUDE #D:>SNAPSHOT>MACROS.M65›1120 MAJOR.ERROR›1130 JSR PRINTSI›1140 .BYTE "}",EOL,EOL›1150 .BYTE "ýÅÒÒÏÒ­ The Snapshot HD Professional",EOL›1160 .BYTE "Programming Utility MUST be loaded in",EOL›1170 .BYTE "first!",EOL,$FF›1180 JMP ($0A)›1190 *= $02E2›1200 .WORD G.START›