// MiscSubrs.bcpl - Miscellaneous SUBRs
// Last change November 2, 1981 10:40 PM by Bill van Melle
// Last change July 13, 1981 1:01 AM by Beau Sheil
// Last change April 1, 1981 7:51 PM by Beau Sheil
// Tone change March 17, 1981 6:37 PM by Beau Sheil
// Last change March 16, 1981 12:01 PM by Beau Sheil
// Post Trill change February 26, 1981 11:30 AM by Beau Sheil
get "LispBcpl.decl"
external [ // subrs defined here
BACKGROUNDSUBR; CLOCK0; DAYTIME0; SETDAYTIME0; NOOPSUBR
// obsolete subrs
SERIALNUMBER; UserName0
// for testing
XtraSubr0; XtraSubr1; XtraSubr2; XtraSubr3; XtraSubr4
// statics used
@lvNIL; @lvVPtr; @VPtr0; @VPtr1; UserName; EmulatorSpace
// procedures used
@XPutBase32; @XGetBase32
UpdateChain; FlushVM; WRITEDIRTYPAGE; NPAGESBIT
// OS procedures
Timer; ReadCalendar; SetCalendar; CallSwat
]
let BACKGROUNDSUBR() = lvNIL
and CLOCK0(lvBox) = valof // returns the millisecond clock
[
Timer(lvVPtr)
XPutBase32(lvBox, lvVPtr)
resultis lvBox
]
and DAYTIME0(lvBox) = valof // returns the time of day clock
[
XPutBase32(lvBox, ReadCalendar(lvVPtr))
resultis lvBox
]
and SETDAYTIME0(lvBox) = valof // sets the time of day clock
[
XGetBase32(lvBox)
SetCalendar(lvVPtr)
resultis lvBox
]
and NOOPSUBR() = lvNIL
and UserName0() = Unimplemented() // used to return addr of user name
and SERIALNUMBER() = Unimplemented() // used to return machine net addr
and Unimplemented() = CallSwat("Subr not implemented!")
// The XtraSubrs are the most miscellaneous of all!!
and XtraSubr0() = UpdateChain()
and XtraSubr1() = FlushVM()
and XtraSubr2(lvBox; numargs na) = (na ls 1? lvNIL, SETDAYTIME0(lvBox))
and XtraSubr3(mindirty, evenifvalid) = WRITEDIRTYPAGE(mindirty, evenifvalid)
and XtraSubr4(flg) = NPAGESBIT (flg)