10 REM Display 20 REM Version 2.11 30 REM 16/02/93 40 REM (C) SMYLIEsoft '93 50 60 PROCinit 70 MODE VAL(mode$) 80 PROCsetup 90 ON ERROR GOTO 100 100 REPEAT 110 PROCchoose 120 UNTIL F=3 130 CLOSE#0 140 PROCpublic 150 END 160 170 DEFPROCinit 180 ch=OPENUP("ATOZ") 190 PTR#ch=16 200 INPUT#ch,mode$ 210 INPUT#ch,pagewidth$ 220 INPUT#ch,pagelength$ 230 PTR#ch=44 240 INPUT#ch,pagesize$ 250 INPUT#ch,pagestart$ 260 PTR#ch=66 270 INPUT#ch,background$ 280 INPUT#ch,foreground$ 290 INPUT#ch,header$ 300 number=EXT#ch 310 number=(number-VAL(pagestart$))/VAL(pagesize$) 320 *KEY 12 B 330 *KEY 13 F 340 ENDPROC 350 360 DEFPROCsetup 370 VDU23;8202;0;0;0; 380 VDU23,225,0,4,6,255,255,6,4,0 390 VDU23,226,0,32,96,255,255,96,32,0 400 VDU23,224,255,0,0,0,0,0,0,0 410 VDU23,227,60,66,189,161,161,189,66,60 420 VDU19,0,VAL(background$);0;19,1,VAL(background$);0;19,3,VAL(background$);0; 430 IF mode$="0" columns=77 ELSE columns=38 440 R=5*(columns MOD2 +1) 450 460 W=8:X=1279:Y=1023:Z=12 470 MOVEZ,Z:MOVEZ+W,Z 480 PLOT85,Z,Y-Z 490 PLOT85,Z+W,Y-Z 500 MOVEZ,Z:MOVEZ,Z+W 510 PLOT85,X-Z,Z 520 PLOT85,X-Z,Z+W 530 MOVEX-Z-W,Z:MOVEX-Z,Z 540 PLOT85,X-Z-W,Y-Z 550 PLOT85,X-Z,Y-Z 560 MOVEX-Z,Y-Z-W:MOVEX-Z,Y-Z 570 PLOT85,Z,Y-Z-W 580 PLOT85,Z,Y-Z 590 MOVEZ,Y-75:MOVEZ,Y-75-W 600 PLOT85,X-Z,Y-75 610 PLOT85,X-Z,Y-75-W 620 VDU28,2-VAL(mode$),1,columns,1 630 PRINTTAB((columns-LEN(header$))/2);header$; 640 MOVEZ,75:MOVEZ,75+W 650 PLOT85,X-Z,75+W 660 PLOT85,X-Z,75 670 X=400+(165*(VAL(mode$)-1)) 680 MOVEX,Z 690 MOVEX,75 700 PLOT85,X-W,Z 710 PLOT85,X-W,75 720 VDU28,2-VAL(mode$),28,columns,3 730 VDU19,3,VAL(foreground$);0; 740 ENDPROC 750 760 DEFPROCchoose 770 PROCmessagewindow(CHR$227+" SMYLIEsoft '93") 780 PROCpagewindow(STR$(number)+" pages") 790 PROCmainwindow:CLS 800 REPEAT 810 PRINTTAB(R,7);"1. View all pages" 820 PRINT'TAB(R);"2. Start at certain page" 830 PRINT'TAB(R);"3. Quit" 840 PRINT''''TAB(R);"Which one ? ";:F=GET:F=F-48:PRINT;F 850 UNTIL F>0 AND F<4 860 IF F=1 CLS:J=1:PROCdisplay(J):PROCbackforward:ENDPROC 870 IF F=2 PROCselect:ENDPROC 880 ENDPROC 890 900 DEFPROCselect 910 REPEAT 920 INPUT''TAB(R);"Start at which number ",G 930 UNTIL G<=number AND G>=1:CLS 940 J=G:PROCdisplay(J):PROCbackforward 950 ENDPROC 960 970 DEFPROCbackforward 980 REPEAT 990 PROCmessagewindow(CHR$226+" (M)enu (P)rint "+CHR$225) 1000 *FX4,2 1010 REPEAT 1020 H$=GET$ 1030 UNTIL H$="F" OR H$="B" OR H$="M" OR H$="P" 1040 *FX4,0 1050 IF H$="P" THEN PROCprint:GOTO990 1060 IF H$="M" J=number+1:GOTO1150 1070 IF H$="F" THEN J=J+1 1080 IF J=number+1 THEN GOTO 1150 1090 IF H$="B" THEN J=J-1 1100 IF J=0 THEN J=1:GOTO 1000 1110 VDU28,2-VAL(mode$),27,columns,3 1120 VDU28,2-VAL(mode$),28,columns,3 1130 CLS 1140 PROCdisplay(J) 1150 UNTIL J=number+1 1160 ENDPROC 1170 1180 1190 DEFPROCdisplay(J) 1200 page$="page : "+STR$(J) 1210 PROCpagewindow(page$) 1220 PROCmainwindow 1230 PTR#ch=VAL(pagestart$)+(J-1)*VAL(pagesize$) 1240 IF F=3 THEN VDU2 1250 FOR T=1 TO VAL(pagelength$) 1260 INPUT#ch,line$ 1270 IF F=3 THEN PRINTline$ ELSE PRINTline$; 1280 NEXTT 1290 ENDPROC 1300 1310 DEFPROCmessagewindow(message$) 1320 VDU28,2-VAL(mode$)+12+(1-VAL(mode$)),30,columns,30 1330 PRINTTAB((columns-12-LEN(message$))/2);message$; 1340 ENDPROC 1350 1360 DEFPROCpagewindow(page$) 1370 VDU28,2-VAL(mode$),30,2-VAL(mode$)+10,30 1380 PRINTTAB((11-LEN(page$))/2);page$; 1390 ENDPROC 1400 1410 DEFPROCmainwindow 1420 VDU28,2-VAL(mode$)+1,28,columns-1,4 1430 ENDPROC 1440 1450 DEFPROCpublic 1460 CLS:CLG 1470 PRINTCHR$227;" SMYLIEsoft 1993" 1480 PRINT''"This viewing program has been" 1490 PRINT"released into the Public Domain," 1500 PRINT"author copyright has been retained." 1510 PRINT''"The information held on the" 1520 PRINT"pages of this datafile however," 1530 PRINT"are not copyrighted." 1540 PRINT'' 1550 ENDPROC 1560 DEFPROCprint 1570 PROCmessagewindow("Turn on printer") 1580 FORT=1TO3000:NEXTT 1590 PROCmessagewindow("PRESS ") 1600 M=GET 1610 COLOUR1 1620 PTR#ch=VAL(pagestart$)+(J-1)*VAL(pagesize$) 1630 VDU2 1640 PRINT'"Page : ";J:PRINT' 1650 FORT=1 TO VAL(pagelength$) 1660 INPUT#ch,line$ 1670 PRINTline$ 1680 NEXTT 1690 VDU3 1700 COLOUR3 1710 ENDPROC