10 REM Simple loader program 20 REM (C)1996 SPROW 30 MODE4:PRINT"Searching" 40 DIMwriteable% 128 50 IFINKEY(-256)=253 THENPROCmaster:END 60 IFINKEY(-256)=255 THENPROCbbcorelk:END 70 IFINKEY(-256)=1 THENPROCbbcorelk:END 80 : 90 DEFPROCmaster 100 FORS%=7TO4 STEP-1 110 IFFNoccupied(S%)=FALSE THENOSCLI"SRLOAD SNAPIT 8000 "+STR$(S%):OSCLI"INSERT "+STR$(S%):PRINT:PRINT"Press CTRL-BREAK to initialise":ENDPROC 120 NEXT 130 PRINT:PRINT"No free sideways ram banks":ENDPROC 140 : 150 DEFPROCbbcorelk 160 FORS%=15TO0 STEP-1 170 IFFNanyswram(S%)=1 ANDFNoccupied(S%)=FALSE THENOSCLI"LOAD R.SNAPIT 8000":PRINT:PRINT"Press BREAK to intialise":ENDPROC 180 NEXT 190 PRINT:PRINT"No free sideways ram banks":ENDPROC 200 : 210 DEFFNanyswram(socket) 220 FORX=0TO2STEP2 230 P%=writeable% 240 IFINKEY(-256)=1 THENGOTO420 250 IFINKEY(-256)=255 THENGOTO270 260 : 270 [OPTX:SEI:LDA&F4:PHA:LDA#socket:STA&F4:STA&FE30:CLI:\Set ROM reg to socket# 280 LDA&8000:PHA:CLC:ADC#1:STAcopy 290 .writeto 300 STA&8000:LDA&8000:CMPcopy 310 BEQtrue 320 .false 330 PLA:PLA:STA&F4:STA&FE30:LDA#0:RTS 340 .true 350 PLA:STA&8000:PLA:STA&F4:STA&FE30:LDA#1:RTS 360 .copy 370 EQUB0 380 ] 390 NEXT 400 =USRwriteable% AND&FF 410 : 420 [OPTX:SEI:LDA&F4:PHA:LDA#12:STA&FE05:LDA#socket:STA&F4:STA&FE05:CLI:\Dummy move takes out BASIC then set ROM reg to socket# 430 LDA&8000:PHA:CLC:ADC#1:STAcopy 440 .writeto 450 STA&8000:LDA&8000:CMPcopy 460 BEQtrue 470 .false 480 PLA:PLA:STA&F4:STA&FE05:LDA#0:RTS 490 .true 500 PLA:STA&8000:PLA:STA&F4:STA&FE05:LDA#1:RTS 510 .copy 520 EQUB0 530 ] 540 NEXT 550 =USRwriteable% AND&FF 560 : 570 DEFFNoccupied(socket) 580 A%=170:X%=0:Y%=255:R%=USR&FFF4:REM Read pointer to start of ROM info table 590 X%=(R% AND &FF00)DIV&100 600 Y%=(R% AND &FF0000)DIV&10000 610 =?((256*Y%)+X%+socket)