// pjinit.sr // Last modified November 2, 1979 8:53 PM by Taft get "BRAVO1.DF"; get "AltoFileSys.D"; get "HEAP.DF"; get "DISPLAY.DF"; get "MEASURE.DF"; get "OM.DF"; get "vm.Df"; get "State.Df"; get "FONT.Df"; get "SELECT.Df"; // Incoming Procedures external [ ult; errhlta move; array hpinit addbp // dumpcore ugt movec array1; initom; chuckinit; findomspace; hplay; chuckinitselect; initsb; lastproc FtyOpen ReadVec; umax RealDA swat hpalloca EnuStu InputStuAb activateomseq fnalloc OutSims EnuSimInit deallocfn deactivateomseq MyFrame chuckinitformat chuckinitdoc chuckinitdisplay InitCalc VirtualDA removefont flushfn puts FindMacPos; underline DAYTIME InitVrldsys createdocm updatedisplay selectwholeww flushvm invalidatewindow Init2Rls hpcompact; CreateVrldsys CacheInit InitMsg fillinfdd getbin SetRegionW SetRegionSys FddlMaxInit CwFddl; FCkUserOf errhlt initvm InitFdh; ReadDiskKd; WriteDiskKd; initkbd ]; // Incoming Statics external [ freet; freee; mpfunsb; rgcdlblank; rgmaccp; macww; vpzone; mpfnof; fillInDA; eofDA; DCread; dnbp; cominstream pzone stackroot tsmacro vmtb rgbp rgvpa rglastused rgbs macbp lrutime dnfn macfn cvmfree rgnchlast vdeltafp begofopsys; USERNAME; mpfnsb; SavedDiskKd; diskKd; vup; macfda; curfda; vcwaitfd; // vputmsbomseq; // vputomfixedstor; // vcfreemin; vmeasurestatus; voverlay; // vputsbomseq; vkcb; fpDiskDescriptor; fpSysLog; vFNoLog; vCfaEndRes; OsVersion; ozone ozonel vfdd0 vwaCode vcaCode vbbs fpSysDir selmain vtodstart vcpagehc vbttotd vbttoti mpWwWwd vllDcb macmn mpmnom cpscrt vcache vbp rgmpbifb vrlwsys fpUserCm vSkfd vfddfirst vfontFixed; vfddlFixed; vcwFontFixed; crefKd diskBTsize nTracks nSectors nDisks nHeads defaultVersionsKept vswitch cfaSysDirEnd vyorig vdcborig vwaitproc daPgn1Kd; relocTable ]; // Outgoing Procedures external [ pjinit2; PreJuntaInit ]; // Outgoing Statics external [ SavedUsername; vfIniting vmacFrScrInit ]; // Local Statics manifest [ vcNewest = 2; vcNewestOrNew = 4 docuserfirst = 7 risyspast = 3; // com.df cwOhdSv = 14+32+#300 // 14 for SV.H // 32 for SV.BLV // #300 for SV.page0 globalSwitches=1 //From Executive -- body is ASCII codes ] structure BLV: [ blank word 26 startOfStatics word endOfStatics word startOfCode word afterLastCodeWord word endCode word relocTable word ] structure UPE[ //User param format: 0 terminates type bit 12 length bit 4 ] // P J I N I T // let pjinit2(stacktop) be [ vfIniting = true let rgPa = vec lrgPa let bbs = vbbs rv #335 = stacktop-stackl; let thpstart = lastproc; let thpend = nil; let stm = lastproc; crefKd = 0 test bbs >> BBS.fInstalled ifnot [ thpend = thpstart + 9000 // hpbuf for compaction !! freet = thpend+hpbuf+10; freee = (rv #335)-10; bbs >> BBS.pArrayMax = freee ] ifso [ ReadVec(lv (bbs >> BBS.aCfa),bbs >> BBS.cwStm,stm) freet = bbs >> BBS.pArrayF; freee = bbs >> BBS.pArrayMax; thpstart = thpstart+stm >> STM.lnmod+10 thpend = freet-(hpbuf+10) ] pzone = array(zonel); // a heap just for fndir and fnopsys initvm(array1); for i = 1 to 15 do addbp(array); hpinit(thpstart,thpend,4,pzone); vup = true; tsmacro = false; macfda = 0; curfda = 0; vcwaitfd = 0; vFNoLog = true chuckinitformat(array1); // chuckinitdisplay uses values set in chuckinitformat!!!! chuckinitdoc(array1); chuckinitdisplay(array1); chuckinitselect(array1); InitCalc(array); vcache = CacheInit(10, 10, array) InitMsg(array) vSkfd = array1(6,0) // have we got a da or Virtual da in vCfaEndRes? if OsVersion gr 4 then (vCfaEndRes >> CFA.fa.da) = RealDA(vCfaEndRes >> CFA.fa.da) test bbs >> BBS.fInstalled ifso [ movec(rgPa,rgPa+lrgPa-1,swat) rgPa ! ipaA = array; rgPa ! ipaH = hpalloca; EnuStu(stm,MyFrame()+ofsetParamF,dtyNil,ipaAb,InputStuAb) // let rgfn = table [ fnscr; fntsmanifest ] // for i = 0 to 1 do // [ let of = mpfnof ! fntsmanifest of >> OF.pos = 0 let rgda = lv (of >> OF.rgda) movec(rgda+1,rgda+of >> OF.macfp+1,fillInDA) for mn = 1 to macmn-1 do [ (mpmnom ! mn) >> OM.ov = 0 (mpmnom ! mn) >> OM.cref = 0 ] ozonel = 0 ozone = lastproc // cpscrt = (mpfnof ! fnscr) >> OF.macpos let macBiScrInit = (mpfnof ! fnscr) >> OF.macbi let fb = getbin(fnscr,macBiScrInit-1) fb >> FB.macfr = vmacFrScrInit (rgbs ! vbp) << BS.dirty = true let mpbifb = rgmpbifb ! fnscr movec(mpbifb+macBiScrInit,mpbifb+maxbiscr-1,-1) // ] // vfdd0 >> FDD.rgcc = 0 // let cwInc = (stm >> STM.lnmod & (-2)) // let hpMinNew = (lastproc+1) & (-2); // let hpMaxNew = (freet-(hpbuf+10+2450)) & (-2) // 2450 for user.cm (sigh) // hpcompact(false,hpMinNew,hpMaxNew) // vup = true // freet = freet-2450 ] ifnot [ let tvec = vec 10; let cfa = vec lCFA; move(fpDiskDescriptor,cfa,lFP) cfa >> CFA.fa.pageNumber = 0; cfa >> CFA.fa.charPos = 0; cfa >> CFA.fa.da = RealDA(cfa >> CFA.fp.leaderVirtualDa); ReadVec(cfa,1,tvec); daPgn1Kd = cfa >> CFA.fa.da; initom(); voverlay = true; // activateomseq("JV",0,0) // unless open(fndir,"SysDir",false,true,false,fpSysDir) do // errhlt("sdr"); ] // vputomfixedstor = 2210+(lnovhdr+5); // unless bbs >> BBS.fInstalled then // deactivateomseq("JV","JV") unless ozonel eq 0 then errhlt("ozl") ] and PreJuntaInit(bbs, blv, upe, cfaEndRes, vecCfa) be [ vcaCode = blv >> BLV.startOfCode vwaCode = cwOhdSv+(1+blv >> BLV.endOfStatics-blv >> BLV.startOfStatics) let relocTableBLV = blv>>BLV.relocTable if relocTableBLV!0 gr relocTable!0 then errhlta(250) relocTable!0 = relocTableBLV!0 for i = 1 to relocTableBLV!0 do relocTable!i = (relocTableBLV-1)!(2*i) vbbs = bbs vswitch = -1 if (upe >> UPE.type eq globalSwitches) & (upe >> UPE.length gr 1) then vswitch = upe ! 1 if ((vswitch % #40) eq $i) then vbbs >> BBS.fInstalled = false cfaSysDirEnd = vecCfa move(fpSysDir,cfaSysDirEnd,lFP) vyorig = 0; vdcborig = #420; // vdcbsys = rv vdcborig; rv vdcborig = 0; voverlay = false; initkbd(); // begofopsys = stackroot-osmachinecodel+1; // movestack(init,begofopsys-1); vwaitproc = 0; // junta(); diskBTsize = diskKd >> KDH.diskBTsize; nTracks = diskKd >> KDH.nTracks; nSectors = diskKd >> KDH.nSectors; nHeads = diskKd >> KDH.nHeads; nDisks = diskKd >> KDH.nDisks; defaultVersionsKept = diskKd >> KDH.defaultVersionsKept; ]