// FullBootInit.bcpl // Copyright Xerox Corporation 1979, 1980, 1982 // Last modified April 7, 1982 6:31 PM by Boggs get "SysDefs.d" get "Streams.d" get "AltoDefs.d" get "SysInternals.d" external [ // outgoing procedures FullBootInit; SysErr // incoming procedures InitializeZone; Allocate; GetFixedInit; Dvec CreateDisplayStream; ShowDisplayStream CreateKeyboardStream // outgoing statics dsp; sysZone; lvSysZone; lvCursorLink // incoming statics CursorLink; lvIdle; Idle ] static [ dsp; sysZone; lvSysZone; lvCursorLink ] manifest lenSysZone = 2400 //---------------------------------------------------------------------------- let FullBootInit(runBLV, bootBLV) be //---------------------------------------------------------------------------- [ let z = lenSysZone Dvec(FullBootInit, lv z) sysZone = InitializeZone(z, lenSysZone) GetFixedInit() CreateKeyboardStream() // pointers to the OS copies of useful statics lvIdle = lv Idle lvSysZone = lv sysZone lvCursorLink = lv CursorLink // display dsp = CreateDisplayStream(nSysDisplayLines, Allocate(sysZone, 1500, false, true), 1500, 0, sysDisplayWidthInWords) ShowDisplayStream(dsp, DSalone) // Having DVECed sysZone into the stack frame of this procedure, we // better not deallocate the frame when returning! (table [ 35000b; 35401b; 1401b ])() //lda 3 0,2; lda 3 1,3; jmp 1,3 ] //---------------------------------------------------------------------------- and SysErr(p1, errNo, p2, p3, p4, p5; numargs na) be //---------------------------------------------------------------------------- [ let t = p1; p1 = errNo; errNo = t (table [ 77403b; 1401b ])("sys.errors", lv p1) ]