// I N I T QINIT2.SR get "BRAVO.DF"; get "HEAP.DF"; get "DISPLAY.DF"; get "CHAR.DF"; get "GINN.DF"; // ** // Incoming Procedures external [ movec insertlf settabs stperm getfont errhlt initfontwidth markcc setlf stsize cpvisible // ** GYPSY added: insertparas makemenuitems makeunpointabledoc lastparacp ]; // Incoming Statics external [ vdevtype xleftmargstd xrightmargstd selaux selarg selmain cursorstate vcpadjusteq rgpctb rgmaccp dnlf macdoc rgcfn cpscrt rgdirty rgdlfirst rgdllast rgdoc rgcpfdispl rghpused rgupdate rgcpfirst rgcpfirstnew rgcplast rgcplastnew rgxlast rgxlastnew rgxfirst rgxfirstnew rgul rgpbm rgpbmnew rgyfirst rgylast rgmaxdl mpdldcb dcb vdcbblack cdcb cnrgul heightstd fontstd macdl macww rgccomp rgcdlblank sbstate sbtermesc rgccstd rgcpfirstinl rgxtab mpfunsb rgfont rgrgcc vsncompact vbetwixt widthblave widthblmin // ** GYPSY ADDED: selection rgpara rgpage rgpagenum rgreadonly rgspec rgprogram rgchoppage rgulnew rgmenu mdoc sphp // %% // ** END GYPSY ADDITIONS ]; // Outgoing Procedures external [ qinitselect; qinitbravocom; qinitdoc; qinitdisplay; qinitformat; // ** qinitmenu qsetupmenu ]; // Outgoing Statics external [ // ** GYPSY ADDED: menumessage nmenuitems vmenumessage vdprinteron sbpast rgview // ** END GYPSY ADDITIONS ]; // Local Statics static [ // ** GYPSY ADDED: menumessage nmenuitems vmenumessage vdprinteron sbpast rgview // ** END GYPSY ADDITIONS ]; // I N I T S E L E C T // SPE catalogue no. let qinitselect(alloc) be [ // ** GYPSY changed selections: selection = alloc(sell); selaux = alloc(sell); selarg = alloc(sell); selection >> SEL.type = snone; selaux >> SEL.type = snone; selarg >> SEL.type = snone; selection >> SEL.ulmode = 1; selaux >> SEL.ulmode = 2; selarg >> SEL.ulmode = 0; selmain = selection selaux >> SEL.ulmodewas = 0 ; selaux >> SEL.ulcpfirstoff = -2 ; selection >> SEL.ulmodewas = 0 ; selection >> SEL.ulcpfirstoff = -2 ; // ** END GYPSY changes sbpast = alloc(25); sbpast ! 0 = 0; cursorstate = -1 // ** GYPSY deleted rgsbcom stuff ] // I N I T B R A V O C O M // catalogue no. and qinitbravocom( ) be [ // ** GYPSY deleted createdoce's and doctxcurrent (buffer stuff) // ** GYPSY changed 0 to 1: vcpadjusteq = 1; // ** GYPSY DELETED tsread and tstoflush and ccommand ] // I N I T D O C // catalogue no. and qinitdoc(alloc) be [ rgpara = alloc(maxdoc) // ** movec(rgpara,rgpara+maxdoc-1,0) // ** rgpage = alloc(maxdoc) // ** movec(rgpage,rgpage+maxdoc-1,0) // ** rgpagenum = alloc(maxdoc) // ** movec(rgpagenum,rgpagenum+maxdoc-1,0) // ** rgreadonly = alloc(maxdoc) // ** movec(rgreadonly,rgreadonly+maxdoc-1,0) // ** rgspec = alloc(maxdoc) // ** movec(rgspec,rgspec+maxdoc-1,0) // ** rgprogram = alloc(maxdoc) // ** movec(rgprogram,rgprogram+maxdoc-1,0) // ** rgview = alloc(maxdoc) // ** movec(rgview,rgview+maxdoc-1,0) // ** rgchoppage = alloc(maxdoc) // ** movec(rgchoppage,rgchoppage+maxdoc-1,0) // ** rgpctb = alloc(maxdoc); rgmaccp = alloc(maxdoc); dnlf = alloc(maxlf); movec(dnlf,dnlf+maxlf-1,0); macdoc = 0; movec(rgpctb,rgpctb+maxdoc-1,-1); rgcfn = alloc(maxfn); movec(rgcfn,rgcfn+maxfn-1,0); cpscrt = 0; rgdirty = alloc(maxww); movec(rgdirty,rgdirty+maxww-1,0); ] // I N I T D I S P L A Y and qinitdisplay(alloc) be [ rgdlfirst = alloc(maxww); rgdllast = alloc(maxww); rgdoc = alloc(maxww); rgcpfdispl = alloc(maxww); rghpused = alloc(maxww); movec(rghpused,rghpused+maxww-1,0); sphp = alloc(maxsphp); // %% movec(sphp,sphp+maxsphp-1,0); // %% rgupdate = alloc(maxww); rgcpfirst = alloc(maxdl); rgcpfirstnew = alloc(maxdl); rgcplast = alloc(maxdl); rgcplastnew = alloc(maxdl); rgxlast = alloc(maxdl); movec(rgxlast,rgxlast+maxdl-1,-1); rgxlastnew = alloc(maxdl); rgxfirst = alloc(maxdl); movec(rgxfirst,rgxfirst+maxdl-1,xleftmargstd); rgxfirstnew = alloc(maxdl); rgul = alloc(maxdl); movec(rgul,rgul+maxdl-1,uloff); // ** GYPSY ADDED: rgulnew = alloc(maxdl); movec(rgulnew,rgulnew+maxdl-1,uloff); // ** END GYPSY ADDITIONS rgpbm = alloc(maxdl); movec(rgpbm,rgpbm+maxdl-1,0); rgpbmnew = alloc(maxdl); rgyfirst = alloc(maxww); rgylast = alloc(maxww); rgmaxdl = alloc(maxww); mpdldcb = alloc(maxdl); dcb = alloc(maxcdcb*dcbl+1); vdcbblack = alloc(5); if vdcbblack << odd then vdcbblack = vdcbblack+1 vdcbblack ! 0 = 0; vdcbblack ! 1 = #40000; vdcbblack ! 2 = 0; vdcbblack ! 3 = 303; if dcb << odd then dcb = dcb+1; cdcb = 0; cnrgul = 0; heightstd = fontstd ! 0; macdl = inidl; macww = 0; movec(rgcpfirst,rgcpfirst+maxdl-1,0); cnrgul = 0; rgccomp = alloc(maxww); movec(rgccomp,rgccomp+maxww-1,0); rgcdlblank = alloc(maxww); movec(rgcdlblank,rgcdlblank+maxww-1,0); sbstate = alloc(35); sbtermesc = alloc(15); ] // end qinitdisplay // I N I T F O R M A T // catalogue no. and qinitformat(alloc) be [ rgccstd = alloc(256); movec(rgccstd,rgccstd+255,0); rgcpfirstinl = alloc(maxdl); // ** rgfsfdispl = alloc(maxww); // ** movec(rgfsfdispl,rgfsfdispl+maxww-1,0); rgxtab = alloc(maxtab+1); // ** rgfsdef = alloc(maxfun); // ** movec(rgfsdef,rgfsdef+maxfun-1,0); mpfunsb = alloc(maxfun); movec(mpfunsb,mpfunsb+maxfun-1,0); rgfont = alloc(maxfun); movec(rgfont,rgfont+maxfun-1,0); rgrgcc = alloc(maxfun); movec(rgrgcc,rgrgcc+maxfun-1,0); rgrgcc ! 0 = rgccstd; // ** rgfsesc = alloc(maxww); // ** movec(rgfsesc,rgfsesc+maxww-1,0); // ** rgfs = alloc(maxdl); // ** movec(rgfs,rgfs+maxdl-1,0); // ** rgfsnew = alloc(maxdl); // ** movec(rgfsnew,rgfsnew+maxdl-1,0); // ** rgfsfirstinl = rgfsnew; mpfunsb ! 0 = stperm("FONT.0", alloc); mpfunsb ! 1 = stperm("FONT.1", alloc); mpfunsb ! 2 = stperm("FONT.2", alloc); // ** GYPSY changed: fontstd = getfont(1); if fontstd eq -1 then errhlt("NF1"); // ** END GYPSY CHANGE // ** GYPSY ADDED: vsncompact = 0; // ** END GYPSY ADDITION initfontwidth(fontstd,rgccstd); // ** GYPSY changed: markcc(rgccstd,#60,#71,0); // digits markcc(rgccstd,#141,#172,0); // a-z markcc(rgccstd,#101,#132,0); // A-Z markcc(rgccstd,$',$',0); // ' markcc(rgccstd,#177,#377,1); markcc(rgccstd,#0,#40,1); // ** space is special in GYPSY markcc(rgccstd,chsp,chsp,2); markcc(rgccstd,chcr,chcr,2); markcc(rgccstd,chtab,chtab,2); // ** END GYPSY CHANGE vsncompact = 0; vbetwixt = 0; // $$[ vdevtype = devalto widthblave = widthspave widthblmin = widthspmin xleftmargstd = altolmarg xrightmargstd = altormarg settabs(tabchstd) // $$] // ** GYPSY got rid of vfs stuff and fnts stuff ] // ** GYPSY deleted com.cm stuff and macro stuff and qinitmenu(alloc) be [ rgmenu = alloc(maxmitems) rgmenu!mquit = stperm("Quit",alloc) rgmenu!mdirectory = stperm("Drafts",alloc) // %% rgmenu!mdrawer = stperm("Folders",alloc) // %% rgmenu!mcancel = stperm("Cancel",alloc) rgmenu!mfile = stperm("File",alloc) rgmenu!mprint = stperm("Printer",alloc) rgmenu!mfetch = stperm("Fetch",alloc) rgmenu!mscan = stperm("Scan",alloc) rgmenu!msubstitute = stperm("Substitute",alloc) rgmenu!mall = stperm("All", alloc) rgmenu!mdocument = stperm("Document", alloc) rgmenu!mturnto = stperm("Find", alloc) rgmenu!madd = stperm("Insert", alloc) rgmenu!mcreate = stperm("Create", alloc) rgmenu!mmake = stperm("Copy", alloc) // $$[ rgmenu!mput = stperm("Put", alloc) rgmenu!mdouble = stperm("Double", alloc) rgmenu!mheadings = stperm("Headings", alloc) rgmenu!mpagenums = stperm("Page", alloc) rgmenu!mrepaginate = stperm("Repaginate", alloc) rgmenu!mstart = stperm("Start", alloc) rgmenu!mstop = stperm("Stop", alloc) rgmenu!mcassette = stperm("Cassette", alloc) rgmenu!mwrite = stperm("Write", alloc) // $$] // %% Changed all below for 2-line menu menumessage = alloc(maxmenumessages) menumessage!mmnodoc = stperm(" *T*T*T*T*TFolders Quit *T*C", alloc) menumessage!mmdir = stperm(" *T*T*T*T*TFolders Quit Document *T*C", alloc) menumessage!mmnodocnocab = stperm(" *T*T*T*T*T Quit *T*C", alloc) menumessage!mmdirnocab = stperm(" *T*T*T*T*T Quit Document *T*C", alloc) menumessage!mmdirty = stperm(" *T*T*T*T*TCancel File *T*C", alloc) // $$[ menumessage!mmclean = stperm(" *T*T*T*T*TDrafts Printer Cassette *T*C", alloc) menumessage!mmprint = stperm( " *T*T*T*T*TStop Start*CDouble spacing | Page numbers | Repaginate *T*C", alloc) menumessage!mmstop = stperm(" *T*T*T*T*TStop *T*C", alloc) menumessage!mmcassette = stperm(" *T*T*T*T*TStop Start *T*C", alloc) menumessage!mmnull = stperm(" *T*C", alloc) // $$] nmenuitems = alloc(maxmenumessages) nmenuitems!mmnodoc = 2 // %% nmenuitems!mmdir = 3 // %% nmenuitems!mmnodocnocab = 1 // %% nmenuitems!mmdirnocab = 2 // %% nmenuitems!mmdirty = 2 // $$[ nmenuitems!mmclean = 3 nmenuitems!mmprint = 5 nmenuitems!mmstop = 1 nmenuitems!mmcassette = 2 // $$] nmenuitems!mmnull = 0 ] and qsetupmenu() be [ let m1 = menumessage ! mmnodocnocab // %% let m2 = " Scan for {" let m3 = " } *TAll Substitute {" let m4 = " } for {" let m5 = " }" insertparas(mdoc, 0, mdoc, 0, 0) insertlf(mdoc, lastparacp(mdoc)-2, lfmenu, idmenu1,100); insertlf(mdoc, lastparacp(mdoc)-2, lfmenu, idmenu2, 26); insertlf(mdoc, lastparacp(mdoc)-2, lfmenu, idmenu3, 26); insertlf(mdoc, lastparacp(mdoc)-2, lfmenu, idmenu4, 26); insertlf(mdoc, lastparacp(mdoc)-2, lfmenu, idmenu5, 26); setlf(lfmenu, idmenu1, m1); setlf(lfmenu, idmenu2, m2); setlf(lfmenu, idmenu3, m3); setlf(lfmenu, idmenu4, m4); setlf(lfmenu, idmenu5, m5); let rr = makeunpointabledoc(mdoc, 4) rr ! 1 = stsize(m1)-1 + stsize(m2)-1 -1 rr ! 2 = rr ! 1 + 1 rr ! 3 = rr ! 2 + stsize(m3)-1 -1 rr ! 4 = rr ! 3 + 1 rr ! 5 = rr ! 4 + stsize(m4)-1 -1 rr ! 6 = rr ! 5 + 1 makemenuitems(mdoc, 0, 4) // %%Quit, Scan, Substitute, and All cpvisible(1,0) vmenumessage = 1 ]