10 REM Scrambled Save 20 REM By M.T.Farnworth 30 REM (c) Mikesoft/Andersonic 40 *KEY10O.|MGOTO60|M 50 CALL !-4 60 MODE7:PRINT' 70 INPUT"Enter code number (1-255):"C% 80 IF (C%<1) OR (C%>255) GOTO60 90 FOR I%=0 TO 2 STEP 2 100 P%=&900 110 [OPT I% 120 .start EQUD 0 130 .end EQUD 0 140 .scram 150 LDA start:CMP end:BNE cont2 160 LDA start+1:CMP end+1:BNE cont2 170 RTS 180 .cont2 190 LDA start:STA stadd+1:STA store+1 200 LDA start+1:STA stadd+2:STA store+2 210 LDX start 220 .loop 230 .stadd LDA &3000,X 240 EOR #C% 250 .store STA &3000,X 260 INX:CPX #0:BEQ pageup 270 .cont 280 CPX end:BNE loop 290 LDA stadd+2:CMP end+1:BNE loop 300 RTS 310 .pageup INC stadd+2:INC store+2 320 JMP cont 330 .setvec 340 LDA &212:STA filev2+1 350 LDA &213:STA filev2+2 360 LDA #filev MOD 256:STA &212 370 LDA #filev DIV 256:STA &213 380 RTS 390 .xreg EQUB 0 400 .yreg EQUB 0 410 .accum EQUB 0 420 .filev 430 CMP #0:BNE next1:JMP save 440 .next1 450 CMP #&FF:BNE next2:JMP load 460 .next2 470 .filev2 JMP &3000 480 .save 490 STX xreg:STX get+1 500 STY yreg:STY get+2 510 LDX #&A 520 .loop2 530 .get LDA &3000,X:STA start-&A,X 540 INX:CPX #&12:BNE get 550 JSR scram 560 LDA #0:LDX xreg:LDY yreg 570 JSR filev2 580 STA accum 590 JSR scram 600 LDX xreg:LDY yreg:LDA accum 610 RTS 620 .load 630 STX xreg:STX get2+1 640 STY yreg:STY get2+2 650 LDX #6:JSR get2:STA test 660 LDX #2:JSR get2:STA start 670 LDX #3:JSR get2:STA start+1 680 LDA #&FF:LDX xreg:LDY yreg 690 JSR filev2 700 STA accum 710 LDA test:BEQ usecont 720 LDX #2:JSR get2:STA start 730 LDX #3:JSR get2:STA start+1 740 .usecont 750 CLC 760 LDX #&A:JSR get2:ADC start:STA end 770 LDX #&B:JSR get2:ADC start+1:STA end+1 780 JSR scram:LDX xreg:LDY yreg:LDA accum 790 RTS 800 .get2 LDA &3000,X:RTS 810 .test EQUB 0 820 ]:NEXT 830 CALL setvec 840 *KEY10 850 PRINT"All files saved before the next BREAK will be scrambled automatically. Any files which are loaded will be considered scrambled and descrambled automatically. Please remember your code number."