10 REM > MakeLP
   20 MODE&87:PROCG(&D00):MODE&84:G$="1.13":PROCM:DIMH%&300:ONERRORIFFNJPRINT" at line ";ERL:END
   30 *FX4
   40 REPEATUNTILFNG:*FX4
   50 END
   60 DEFPROCM:j%=FALSE:g%=FALSE:h%=FALSE:M%=FALSE:G%=FALSE:c$="Code for ":Q%=66:R%=60:b%=TRUE:_%=FALSE:T%=TRUE:N%=TRUE:I%=TRUE:D%=TRUE:E%=TRUE:J%=TRUE:L%=TRUE:e%=0:M=&FFEE:YA=&FFE3:N=&FFCE:b=&FFD7:DIMA$(101):FORl%=32TO101:A$(l%)="    ":NEXT:FORl%=32TO101:READA$(l%):IFA$(l%)<>""A$(l%)=EVALA$(l%)ELSEA$(l%)=""
   70 NEXT
   80 DATA CHR$27+"@",,CHR$27+"E",,CHR$27+"G",,,,,CHR$27+"4",,,,,,,,,,CHR$27+"S0",,,,CHR$27+"W1",,CHR$27+"S1",,,,,,
   90 DATA CHR$27+"R"+CHR$3+"#"+CHR$27+"R"+CHR$0,,CHR$27+"F",,CHR$27+"H",,,,,CHR$27+"5",,,,,,,,,,CHR$27+"T",,,,CHR$27+"W0",,CHR$27+"T",,,,,,
  100 DATA CHR$27+"-0",CHR$27+"-1",,,,,,,,,,,,,,
  110 ENDPROC
  120 DEFFNB(A$):LOCALl%,B$:B$="":IFA$="++":="Set bit 7"
  130 IFA$="--":="Clear bit 7"
  140 IFA$=""=""
  150 FORl%=1TOLENA$:m$=MID$(A$,l%,1):IFl%<>1 B$=B$+","
  160   IFASCm$<32ORASCm$>126 B$=B$+STR$ASCm$ELSEIF(m$>="0"ANDm$<="9")ORm$=","B$=B$+CHR$34+m$+CHR$34ELSEB$=B$+m$
  170 NEXT:=B$
  180 DEFFNG:CLS:PRINTSPC4"Printer Driver Generator ";G$'SPC4;STRING$(29,"="):PRINT'SPC9"(C)1992 J.G.Harston":PRINT''SPC5"1 : General settings":PRINT'SPC5"2 : Letter extensions":PRINT'SPC5"3 : Save settings":PRINT'SPC5"4 : Load settings":PRINT'SPC5"5 : (Create View Driver)":PRINT'SPC5"6 : Create lp Program"
  190 PRINT''SPC5"0 : Exit"'':PRINTSPC5"Press a key: ";:REPEATREPEATA$=GET$:UNTILINSTR("0123456*"+CHR$13+CHR$0,A$):IFA$<>"*"PRINTA$
  200   IFA$="*"INPUTLINE"*"A$:OSCLIA$:A$="":PRINT":";
  210   IFA$=CHR$0PRINT"Saving...";:OSCLI"SAVE "+MID$($(PAGE+4),INSTR($(PAGE+4),">")+1)+" "+STR$~PAGE+" "+STR$~TOP+" FFFF0000 FFFFFB00"
  220   IFA$="1"PROCC
  230   IFA$="2"PROCH
  240   IFA$="3"PROCN
  250   IFA$="4"PROCO
  260   IFA$="5"PROCI
  270   IFA$="6"PROCJ
  280 UNTILA$<>"":=A$="0"
  290 DEFFNJ:IFERR=17ANDINKEY-1=0=0
  300 LOCALA$:REPORT:A$=GET$:=INKEY-1
  310 DEFPROCC:CLS:PRINTSPC10"General Parameters"':PRINT"Auto linefeed? "FND(b%)''"Paper length: ";Q%''"Text page length: ";R%:PRINT'"FF at end of page? "FND(_%)''"LF at end of page? "FND(T%):PRINT'"FF after last page? "FND(N%):PRINT'"Convert CHR$96 (`) to pound? "FND(J%)
  320 PRINT"Convert CHR$163 ("CHR$163") to pound? "FND(L%):PRINTc$"pound: "FNB(A$(64)):PRINT'"Highlight 1:":PRINTc$"underline on:  ";FNB(A$(97)):PRINTc$"underline off: ";FNB(A$(96)):PRINT'"Use extended highlights? ";FND(I%)':IFI%PRINT'
  330 IFNOTI%PRINT"Highlight 2:"'c$"bold on:  ";FNB(A$(98))'c$"bold off: ";FNB(A$(99))
  340 PRINT'':PRINTSTRING$(40,"=")"Printer reset with code '@' (see page 2)Pound also defined with code '`'";:REPEATPRINTTAB(13,2);:b%=FNC(b%):INPUTTAB(18,4);x%:PROCx(18,4):IFx%>10 Q%=x%:PRINTTAB(14,4);x%;"  "
  350   INPUTTAB(22,6);x%:PROCx(22,6):IFx%>10 R%=x%:PRINTTAB(18,6);x%;"  "
  360   PRINTTAB(17,8);:_%=FNC(_%):IF_%T%=FALSE:PRINTTAB(19,10);"No "
  370   IFNOT_%PRINTTAB(17,10);:T%=FNC(T%)
  380   PRINTTAB(18,12);:IF_%+T%=0 N%=0:PRINT"? No "ELSEN%=FNC(N%)
  390   PRINTTAB(27,14);:J%=FNC(J%):PRINTTAB(28,15);:L%=FNC(L%):PRINTTAB(0,17)"Code: ";:INPUTLINE""x$:PROCx(0,17):IFx$<>""A$(64)=FNA(x$):PRINTTAB(16,16)FNB(A$(64));:PROCx(POS,VPOS):IFx$=" "A$(64)=""
  400   PRINTTAB(0,21)c$"on: ";:INPUTLINE""x$:PROCx(0,21):IFx$<>""A$(97)=FNA(x$):PRINTTAB(24,19)FNB(A$(97));:PROCx(POS,VPOS):IFx$=" "A$(97)=""
  410   PRINTTAB(0,21)c$"off: ";:INPUTLINE""x$:PROCx(0,21):IFx$<>""A$(96)=FNA(x$):PRINTTAB(24,20)FNB(A$(96));:PROCx(POS,VPOS):IFx$=" "A$(96)=""
  420   PRINTTAB(23,22);:I%=FNC(I%):PRINT:IFI%PROCx(POS,VPOS):PROCx(0,VPOS+1):PROCx(0,VPOS+1)ELSEPRINT"Highlight 2:"'c$"bold on:  ";FNB(A$(98))'c$"bold off: ";FNB(A$(99))
  430   IFNOTI%PRINTTAB(0,27)c$"on: ";:INPUTLINE""x$:PROCx(0,27):IFx$<>""A$(98)=FNA(x$):PRINTTAB(19,25)FNB(A$(98));:PROCx(POS,VPOS):IFx$=" "A$(98)=""
  440   IFNOTI%PRINTTAB(0,27)c$"off: ";:INPUTLINE""x$:PROCx(0,27):IFx$<>""A$(99)=FNA(x$):PRINTTAB(19,26)FNB(A$(99));:PROCx(POS,VPOS):IFx$=" "A$(99)=""
  450 PRINTTAB(0,28)"Ok";:i%=FNC(FALSE):PROCx(0,28):UNTILi%:ENDPROC
  460 DEFPROCx(X%,Y%):PRINTTAB(X%,Y%);SPC(39-POS);:ENDPROC
  470 DEFFND(F%):IFF%:="Yes"ELSE="No "
  480 DEFFNH(l%):IFl%=D%:="Set bit 7"
  490 IFl%<>E%:=FNB(A$(l%))ELSE="Clear bit 7"
  500 DEFPROCD(A%):CLS:FORl%=0TO31:PRINTTAB(0,l%);CHR$(l%+A%+32);" ";FNH(l%+A%);TAB(20,l%);CHR$(l%+A%+64);" ";FNH(l%+A%+32);:NEXT:ENDPROC
  510 DEFPROCH:t%=32:PROCD(t%):*FX4,1
  520 l%=0:REPEATREPEATPRINTTAB(1+20*((l%DIV32)AND1),l%MOD32);":";TAB(20,31);CHR$(l%+t%+32);" ";LEFT$(FNB(A$(l%+t%)),16);SPC(38-POS);TAB(20,31);:K%=GET:m%=l%:IFK%=136 m%=l%-32
  530     IFK%=137 m%=l%+32
  540     IFK%=138 m%=l%+1
  550     IFK%=139 m%=l%-1
  560     IFK%=135 t%=t%EOR32:PROCD(t%)
  570     IFm%<0ORm%>62 m%=l%
  580     IFm%<>l%PRINTTAB(1+20*((l%DIV32)AND1),l%MOD32);" ";:l%=m%
  590 UNTILK%<127ANDK%>31:PROCT:UNTIL0:ENDPROC
  600 DEFPROCT:PRINTTAB(22,31);SPC16;TAB(22,31);:C$=FNA(FNE(CHR$K%,17)):IFLEFT$(C$,1)=" "C$=""
  610 IFC$=""ANDD%=l%D%=TRUE
  620 IFC$=""ANDE%=l%E%=TRUE
  630 IFC$="++"ANDD%>TRUEIF((D%-t%)AND&FFC0)=0PRINTTAB(2+20*((D%-t%)DIV32),D%AND31);SPC18;
  640 IFC$="--"ANDE%>TRUEIF((E%-t%)AND&FFC0)=0PRINTTAB(2+20*((E%-t%)DIV32),E%AND31);SPC18;
  650 IFC$="++"C$="":D%=(l%+t%)OR(l%+t%<32)
  660 IFC$="--"C$="":E%=(l%+t%)OR(l%+t%<32)
  670 A$(l%+t%)=C$:PRINTTAB(2+20*((l%DIV32)AND1),l%MOD32);FNH(l%+t%);SPC(20-(POSMOD20));:UNTIL0
  680 DEFFNA(A$):LOCALl%,B$:l%=1:REPEATm$=MID$(A$,l%,1):IF(m$<"0"ORm$>"9")ANDm$<>CHR$34 B$=B$+m$:l%=l%+1
  690 IFm$=CHR$34ANDMID$(A$,l%+2,1)=CHR$34 B$=B$+MID$(A$,l%+1,1):l%=l%+3
  700 IF(m$>="0"ANDm$<="9")B$=B$+CHR$VALMID$(A$,l%):l%=l%+INSTR(MID$(A$,l%)+",",",")-1
  710 IFMID$(A$,l%,1)=","l%=l%+1
  720 UNTILl%>LENA$:=B$
  730 DEFFNE(A$,`%):LOCALB%,l%:$H%=A$:l%=LENA$:PRINTA$;:REPEATB%=GET:IFB%=127ANDl%<>0VDU127:l%=l%-1
  740 IFB%>31ANDB%<127ANDl%<`%VDUB%:H%?l%=B%:l%=l%+1
  750 UNTILB%=13:H%?l%=13:=$H%
  760 DEFPROCI:INPUT"Filename to save by: "F$:IFF$=""F$="drv"
  770 PRINT'"Assembling View Printer Driver";:FORP=0TO1:C%=P*3+4:P%=&400:O%=H%:O%=H%:[OPTC%:JMPv:JMPQA:JMPIA:RTS:.RA:BRK:.`A:BRK:RTS:]:PROCB(C%):[OPTC%:.QA:LDA#2:JMP&FFEE:.IA:LDA#3:JMP&FFEE:.v:]:IFI%[OPTC%:BITRA:BMIw:]
  780 [OPTC%:CMP#&81:BEQx:CMP#&80:BEQy:CMP#13:BEQj:]:IFJ%[OPTC%:CMP#96:BEQq:]
  790 IFL%[OPTC%:CMP#163:BEQr:]
  800 [OPTC%:JMP&FFEE:.w:.q:.r:.y:.x:.j:RTS:]NEXT:OSCLI"*SAVE "+F$+" "+STR$~H%+" "+STR$~O%+" 400 400":PRINT"...":IFGET
  810 ENDPROC
  820 DEFFNF:G%=0:M%=TRUE:l%=0:REPEATIFA$(l%)<>""FORm%=1TOLENA$(l%):G%=G%OR(ASCMID$(A$(l%),m%,1)>127):NEXT
  830 l%=l%+1:UNTILl%=102ORG%:IFG%:=FNI
  840 l%=0:REPEATIFA$(l%)<>""ANDLEFT$(A$(l%),1)<>CHR$27 M%=0
  850 l%=l%+1:UNTILl%=102ORM%=0:=0
  860 DEFFNI:M%=0:f%=0:l%=0:REPEATIFA$(l%)<>""FORm%=1TOLENA$(l%):PROCQ(ASCMID$(A$(l%),m%,1)):NEXT
  870 l%=l%+1:UNTILl%=102OR(M%ANDf%):IFM%ANDf%PRINT"Can't build table with both 0 and 255";:f%=GET:=TRUEELSE=0
  880 DEFPROCQ(A%):IFA%=0 M%=TRUE:ENDPROC
  890 IFA%=&FF f%=TRUE
  900 ENDPROC
  910 DEFPROCB(C%):U%=(M%AND128)+(b%AND64)+(_%AND32)+(T%AND16)+(I%AND8)+(J%AND4)+(L%AND2)+(N%AND1):W%=(G%AND128)+(e%AND64):[OPTC%:EQUBU%:EQUB(Q%AND31)+(((E%-32)*4)AND&E0):EQUB(R%AND31)+(((E%-32)*32)AND&E0):EQUBW%+((D%-32)AND(D%>0ANDE%>0)):.F:]:FORl%=0TO101:IFA$(l%)<>""PROCU
  920 NEXT:[OPTC%:EQUB255:]:ENDPROC
  930 DEFPROCU:[OPTC%:EQUBl%+1:]:IFG%[OPTC%:EQUSA$(l%):EQUBM%AND&FF:]:ENDPROC
  940 IFM%[OPTC%:EQUSMID$(A$(l%),2,LENA$(l%)-2):EQUB128+ASCRIGHT$(A$(l%),1):]:ENDPROC
  950 [OPTC%:EQUSLEFT$(A$(l%),LENA$(l%)-1):EQUB128+ASCRIGHT$(A$(l%),1):]:ENDPROC
  960 DEFPROCJ:PRINT"Create 'lp' program":IFFNFENDPROC
  970 INPUT"Filename to save by: "F$:IFF$=""F$="lp"
  980 D$=F$:IFINSTR(D$,".")REPEATD$=MID$(D$,INSTR(D$,".")+1):UNTILINSTR(D$,".")=0
  990 PRINT"Assembling ";F$:Z%=&FFFF0900:B=0:REPEATO%=H%:P%=Z%:z=B:PROCA(4):IFB>&B00 Z%=&FFFF08C0
 1000 UNTILB=z:O%=H%:P%=Z%:PROCA(6):PRINT"Saving ";F$'"Start: &";~Z%AND&FFFF;"  End: &";~B:OSCLI"SAVE "+F$+" "+STR$~H%+" "+STR$~O%+" "+STR$~(d%OR&FFFF0000)+" "+STR$~Z%:ENDPROC
 1010 DEFPROCA(C%):PROCB(C%):PROCK(C%):PROCE(C%):PROCL(C%):PROCF(C%):PROCP(C%):ENDPROC
 1020 DEFPROCK(C%):[OPTC%:.O:LDA#1:STAQ:RTS:.AA:TYA:PHA:JSRO:LDA#124:JSR&FFF4:LDA#15:JSR&FFF4:PLA:TAY:.OA:]:IFN%[OPTC%:JSRn:]
 1030 [OPTC%:DECQ:BEQBA:LDA#0:STA&A8:STA&A9:STA&AA:STA&AB:LDX#&A8:LDA#1:JSR&FFDA:._:JSR`:STAo:JMPD:.BA:LDA#3:JSRM:LDA#0:]:IFB<&B00 [OPTC%:JMPN:]
 1040 IFB>&AFF [OPTC%:JSRN:LDA#0:LDX#1:JSR&FFF4:CPX#3:BCSSA:LDA#18:JMP&FFF4:.SA:RTS:]
 1050 ENDPROC
 1060 DEFPROCE(C%):[OPTC%:.R:JSRJA:LDAL:CMP#R%:BCCD:JSRn:.D:LDX#1:]:ENDPROC
 1070 DEFPROCL(C%):[OPTC%:.E:BIT&FF:BMIAA:JSRb:BCSOA:]:ENDPROC
 1080 DEFPROCF(C%):[OPTC%:CMP#32:BCCTA:]:IF(D%ORE%)>0 [OPTC%:ORAbit7:]
 1090 IFJ%[OPTC%:CMP#96:BEQS:]
 1100 IFL%[OPTC%:CMP#163:BEQS:]
 1110 [OPTC%:.PA:INX:JSRC:JMPE:.TA:CMP#13:BEQR:CMP#10:BEQR:CMP#9:BEQZA:CMP#12:BEQCA:CMP#28:BEQc:CMP#29:]:IFI%[OPTC%:BEQf:]ELSE[OPTC%:BEQUA:]
 1120 [OPTC%:BNEE:]:IFJ%ORL%[OPTC%:.S:LDA#64:BNEI:]
 1130 [OPTC%:.CA:JSRn:JMPD:]:IFI%[OPTC%:.VA:JMPOA:.f:JSRb:BCSVA:SBC#31:BMIE:CMP#95:BCSE:]
 1140 IF(E%ORD%)>0:[OPTC%:CMP#D%:BEQWA:CMP#E%:BNEI:LDA#0:.KA:STAXA:JMPE:.WA:LDA#128:BMIKA:]
 1150 [OPTC%:.I:JSRG:JMPE:.c:LDAH:EOR#1:STAH:AND#1:ORA#96:.DA:JSRG:JMPE:]:IFNOTI%[OPTC%:.UA:LDAH:EOR#2:STAH:LSRA:AND#1:ORA#98:BNEDA:]
 1160 [OPTC%:.ZA:TXA:AND#7:TAX:.EA:LDA#32:JSRC:INX:TXA:CMP#8:BNEEA:JMPE:.LA:LDA#27:BNEU:.C:.U:PHA:LDA#1:JSRk:PLA:.k:JMPM:]:IF_%[OPTC%:.n:LDA#12:JSRU:]
 1170 IFT%[OPTC%:.FA:JSRa:.n:LDAL:CMP#Q%:BCCFA:]
 1180 [OPTC%:INCo:.`:LDA#0:STAL:RTS:.JA:BITH:BVCa:JSRa:.a:]:IFb%[OPTC%:LDA#10:JSRC:]
 1190 [OPTC%:INCL:LDA#13:JMPC:.G:STXJ:CLC:ADC#1:LDX#0:.GA:CMPF,X:BEQl:BCCK:PHA:.T:INX:LDAF,X:]:IFG%=0 [OPTC%:BPLT:]
 1200 IFG%ANDM%[OPTC%:CMP#&FF:]
 1210 IFG%[OPTC%:BNET:]
 1220 [OPTC%:PLA:INX:BNEGA:.l:]:IFG%=0ANDM%[OPTC%:JSRLA:]
 1230 [OPTC%:.V:INX:LDAF,X:]:IFG%ANDM%[OPTC%:CMP#&FF:]
 1240 IFG%[OPTC%:BEQK:]
 1250 IFG%=0 [OPTC%:AND#127:]
 1260 [OPTC%:JSRC:]:IFG%=0 [OPTC%:LDAF,X:BPLV:]ELSE[OPTC%:JMPV:]
 1270 [OPTC%:.K:LDXJ:RTS:]:ENDPROC
 1280 DEFPROCP(C%):o%=O%:p%=P%:[OPTC%:.Q:BRK:.W:BRK:.L:BRK:.o:BRK:.H:BRK:.J:]:IF(E%ORD%)>0:[OPTC%:.XA:BRK:]
 1290 O%=o%:P%=p%:[OPTC%:.d%:LDX#&A8:LDY#0:JSRO:STYW:JSR&FFDA:LDA(&A8),Y:CMP#13:BEQp:LDX#0:CMP#ASC"+":BNEs:LDX#&40:JSRZ:BEQp:.s:STXH:TYA:PHA:.MA:INY:LDA(&A8),Y:CMP#ASC"!":BCSMA:JSRg:BEQh:JSRi:STAQ:JSRg:BEQh:JSRi:STAW:.h:PLA:CLC:ADC&A8:TAX
 1300 LDA#0:ADC&A9:TAY:LDA#&40:JSRN:TAY:BEQm:LDA#2:JSRM:LDA#32:JSRG:JMP_:.p:._A:BRK:EQUB220:EQUS"Syntax: "+D$+" (+)<afsp> (<num>)":.m:BRK:EQUB214:EQUS"Not found":BRK:.i:LDA#0:.NA:STA&AA:LDA(&A8),Y:CMP#ASC"0":BCCHA:AND#15:PHA
 1310 LDA&AA:ASLA:ASLA:ADC&AA:ASLA:STA&AA:PLA:ADC&AA:INY:BNENA:.HA:LDA&AA:RTS:.Z:INY:.g:LDA(&A8),Y:CMP#ASC" ":BEQZ:CMP#13:RTS:EQUS"V"+G$:BRK:.B:]:ENDPROC
 1320 DEFPROCN:IFFNFENDPROC
 1330 PRINT'"Save settings":INPUT"Filename: "F$:P%=H%:PROCB(0):OSCLI"SAVE "+F$+" "+STR$~H%+" "+STR$~P%+" 0 0":ENDPROC
 1340 DEFPROCO:PRINT'"Load settings":INPUT"Filename: "F$:OSCLI"LOAD "+F$+" "+STR$~H%:V%=H%:IF?V%=&4CANDV%?3=&4CANDV%?6=&4C V%=V%+13
 1350 U%=?V%:Q%=V%?1:R%=V%?2:W%=V%?3:a%=V%?4:E%=8*(Q%DIV32)+R%DIV32:Q%=48+(Q%AND31EOR16):R%=48+(R%AND31EOR16):D%=W%AND31:IFD%=0 D%=TRUE:E%=TRUEELSED%=D%+32:E%=E%+32
 1360 M%=(U%AND128)<>0:b%=(U%AND64)<>0:_%=(U%AND32)<>0:T%=(U%AND16)<>0:I%=(U%AND8)<>0:J%=(U%AND4)<>0:L%=(U%AND2)<>0:N%=(U%AND1)<>0:G%=(W%AND128)<>0:e%=(W%AND64)<>0:IFM%E$=CHR$27ELSEE$=""
 1370 IFa%=0PROCR:ENDPROC
 1380 IFa%>80PRINT"Unknown format";:a%=GET:ENDPROC
 1390 x%=1:IFa%=1 x%=-31
 1400 m%=V%+4:IFG%PROCS:ENDPROC
 1410 FORl%=0TO101:A$(l%)="":IF?m%=l%+x%:REPEATm%=m%+1:A$(l%)=A$(l%)+CHR$(?m%AND127):UNTIL?m%>127:m%=m%+1:A$(l%)=E$+A$(l%)
 1420 NEXT:ENDPROC
 1430 DEFPROCS:FORl%=0TO101:A$(l%)="":IF?m%=l%+1:REPEATm%=m%+1:A$(l%)=A$(l%)+CHR$?m%:UNTIL?m%=(M%AND&FF):m%=m%+1:A$(l%)=LEFT$(A$(l%),LENA%(l%)-1)
 1440 NEXT:ENDPROC
 1450 DEFPROCR:m%=V%+84:FORl%=4TO73:`%=?(V%+l%+1)-V%?l%:IF`%>0 A$(l%+28)=E$:FORn%=1TO`%:A$(l%+28)=A$(l%+28)+FNK(?m%):m%=m%+1:NEXTELSEA$(l%+28)=""
 1460 NEXT:E%=TRUE:D%=TRUE:ENDPROC
 1470 DEFFNK(c%):IFG%ANDc%>127:=CHR$27+CHR$(c%AND127)ELSE=CHR$c%
 1480 DEFFNC(F%):LOCALK%:PRINT"? (";CHR$(78-F%*11);")";:REPEATK%=GET:IFK%>95 K%=K%AND&DF
 1490 UNTILK%=13ORK%=89ORK%=78:IFK%=13 K%=F%ELSEK%=K%=89
 1500 PRINTSTRING$(3,CHR$127);:IFK%PRINT"Yes"ELSEPRINT"No "
 1510 =K%
 1520 DEFPROCG(S%):A%=133:X%=&84:A%=(USR&FFF4AND&FFFF00)DIV256:IFA%-TOP>S%ENDPROC
 1530 B%=(PAGE+(A%-TOP-S%))AND&FF00:PRINT"Relocating to &";~B%:*K.0 RUN|M
 1540 *FX225,1
 1550 *FX138,0,128
 1560 FORA%=0TOTOP-PAGE+4STEP4:B%!A%=A%!PAGE:NEXT:PAGE=B%:END