10REM Program to display files produced by the Automatic Screen Saver 20REM (C) John Robinson 1989 30: 40MODE 0 50PROCinitialise 60: 70REPEAT 80INPUT "Please give the filename of the file: " file$ 90handle=OPENIN file$ 100UNTIL handle<>0 110: 120REPEAT 130mode=BGET#handle 140IF mode>7 THEN MODE 7:CLOSE#handle:PRINT "Bad mode":END 150PROCmode(mode) 160?gbpbblock=handle 170gbpbblock!1=scrstart OR &FFFF0000 180gbpbblock!5=scrlen 190A%=4 200Y%=gbpbblock DIV 256 210X%=gbpbblock MOD 256 220CALL osgbpb 230REPEAT 240key=GET 250UNTIL key=&20 OR (key OR &20)=ASC "p" 260IF (key OR &20)=ASC "p" THEN PROCprintout 270UNTIL PTR#handle=EXT#handle 280: 290MODE 7 300PRINT "Finished" 310CLOSE#handle 320END 330: 340DEFPROCinitialise 350DIM screenlen(7),screenstart(7),colours(7) 360FOR read=0 TO 7 370READ screenstart(read),screenlen(read),colours(read) 380NEXT 390DIM gbpbblock 12 400osgbpb=&FFD1 410oscli =&FFF7 420DIM printstr 255 430$printstr="*GIMAGE EPS" 440ENDPROC 450: 460DATA &3000,&5000,2, &3000,&5000,4, &3000,&5000,16, &4000,&4000,2, &5800,&2800,2, &5800,&2800,4, &6000,&2000,2, &7C00,&400,0 470: 480DEFPROCmode(mode) LOCAL colour 490VDU 22,mode 500scrstart=screenstart(mode) 510scrlen=screenlen(mode) 520IF colours(mode)=0 THEN ENDPROC 530FOR colour=0 TO colours(mode)-1 540VDU 19,colour,BGET#handle;0; 550NEXT colour 560ENDPROC 570: 580DEFPROCprintout 590Y%=printstr DIV 256 600X%=printstr MOD 256 610CALL oscli 620ENDPROC 630: