10 REM pseudo-rom by s smith
20 REM get filename and find length 30 MODE 2:GOSUB 310:REM machine code for file info 40 PRINT"Enter filename.It must have 8 letters and a file extension" 50 PRINT:PRINT"E.g :- YOURCODE.BIN" 60 PRINT:INPUT file$:qq=LEN(file$) 70 IF qq<>12 THEN SOUND 1,4000,20:GOTO 40 80 IF MID$(file$,9,1)<>"." THEN SOUND 1,400,20:GOTO 40 90 REM find length 100 FOR f=1 TO qq 110 POKE &2016+f,ASC(MID$(file$,f,1)) 120 NEXT 130 PRINT:PRINT"Put disc containing file in drive.Then press a key." 140 WHILE INKEY$="":WEND 150 CALL &2000 160 lobyte=PEEK(&2023):hibyte=PEEK(&2024)*256 170 length=lobyte+hibyte 180 lobyte=PEEK(&2025):hibyte=PEEK(&2026)*256 190 loadaddr=lobyte+hibyte 200 long$=HEX$(length,4):loadaddr$=HEX$(loadaddr,4) 210 PRINT"length= "long$:PRINT"load address= "loadaddr$ 220 IF loadaddr<&8000 THEN PRINT"No good:Loads below &8000":END 230 REM page in bank 4 from extra ram 240 CALL &BD5B,a,a,a,a:REM firmware call kl bank switch 250 LOAD file$,&4000:REM load file 260 CALL &BD5B:REM page bank 4 out 270 REM file is now in bank 4:safe from a soft reset 280 REM now poke recall code into safe area 290 GOSUB 410 300 PRINT"Finished:Call &bf08 to recall code after reset":END 310 REM load machine code 320 MEMORY &1FFF 330 RESTORE 360:FOR f=0 TO 38 340 READ a$:POKE &2000+f,VAL("&"+a$) 350 NEXT:RETURN 360 DATA 06,0c,21,17,20,11,00,90 370 DATA cd,77,bc,ed,43,23,20,ed 380 DATA 53,25,20,cd,7a,bc,c9,00 390 DATA 00,00,00,00,00,00,00,00 400 DATA 00,00,00,00,00,00,00,00 410 REM recall code 420 RESTORE 500:FOR f=0 TO 23 430 READ a$ 440 IF a$="LL" THEN a$=RIGHT$(loadaddr$,2) 450 IF a$="LH" THEN a$=LEFT$(loadaddr$,2) 460 IF a$="SL" THEN a$=RIGHT$(long$,2) 470 IF a$="SH" THEN a$=LEFT$(long$,2) 480 POKE &BF08+f,VAL("&"+a$) 490 NEXT:RETURN 500 DATA 3e,04,cd,5b,bd,21,00,40 510 DATA 11,LL,LH,01,SL,SH,ed,b0 520 DATA af,cd,5b,bd,cd,LL,LH,c9 |