(!svarray)  .dup .where (.pop .pop) (1000 .array .def) /ifelse

($makeob) .dup .where (.pop .pop)(64 .dict .def) /ifelse

$makeob .begin

(#)(.load) .load .def

(!params) 3 .array .def
!params 2 0 .aput

(save)
[ !params 0 3 -1 (.roll)# (.aput)# (.dup)# !params 1 3 -1 (.roll)# (.aput)# (.copy)# !svarray !params 2 (.aget)#  !params 1 (.aget)# (.subarray)#
(.astore)# (.pop)# !svarray !params 2 (.aget)# !params 1 (.aget)# (.add)#  (.sysdict)# !params 0 (.aget)#  (.get)# (.dup)# 4 1 (.roll)# (.aput)#  !params 2 !params 2 (.aget)# !params 1 (.aget)# 1 (.add)# (.add)# (.aput)# (.exec)# ] .cvx .def

(.pushdc)
[ 0 (.pushdc) (save)# ] .cvx .def

(.popdc)
[ 0 (.popdc)  (save)# ] .cvx .def

(.setview)
[ 8 (.setview) (save)# ] .cvx .def

(.setclip)
[ 4 (.setclip) (save)# ] .cvx .def

(.translate)
[ 2 (.translate) (save)# ] .cvx .def

(.scale)
[ 2 (.scale) (save)# ] .cvx .def

(.translate)
[ 2 (.translate) (save)# ] .cvx .def

(.rotate)
[ 1 (.rotate) (save)# ] .cvx .def

(.drawto)
[ 2 (.drawto) (save)# ] .cvx .def

(.rdrawto)
[ 2 (.rdrawto) (save)# ] .cvx .def

(.moveto)
[ 2 (.moveto) (save)# ] .cvx .def

(.rmoveto)
[ 2 (.rmoveto) (save)# ] .cvx .def

(.drawboxarea)
[ 4 (.drawboxarea) (save)# ] .cvx .def

(.enterspline)
[ (.dup)# 2 (.mul)# 1 (.add)# (.enterspline) (save)# ] .cvx .def

(.entercspline)
[ (.dup)# 2 (.mul)# 1 (.add)# (.entercspline) (save)# ] .cvx .def

(.erase)
[ 0 (.erase) (save)# ] .cvx .def

(.erasechar)
[ 1 (.erasechar) (save)# ] .cvx .def

(.texture)
[ 1 (.texture) (save)# ] .cvx .def

(.setgrey)
[ 1 (.pop) (save)# ] .cvx .def

(.setfont)
[ 1 (.setfont) (save)# ] .cvx .def

(.setfontmode)
[ 1 (.setfontmode) (save)# ] .cvx .def

(.drawchar)
[ 1 (.drawchar) (save)# ] .cvx .def

(.drawstring)
[ 1 (.drawstring) (save)# ] .cvx .def

(.entersdchar)
[ 1 (.entersdchar) (save)# ] .cvx .def

(.drawob)
[ 1 (.drawob) (save)# ] .cvx .def

(.makeob)
((".makeob" is illegal while making an object) =).cvx .def

(.startpath)
[ 0 (.startpath) (save)# ] .cvx .def

(.starteopath)
[ 0 (.starteopath) (save)# ] .cvx .def

(.enterpoint)
[ 2 (.enterpoint) (save)# ] .cvx .def

(.newboundary)
[ 0 (.newboundary) (save)# ] .cvx .def

(.enterrect)
[ 4 (.enterrect) (save)# ] .cvx .def

(.drawarea)
[ 0 (.drawarea) (save)# ] .cvx .def

(.cliparea)
[ 0 (.cliparea) (save)# ] .cvx .def

(.clippedcliparea)
[ 0 (.clippedcliparea) (save)# ] .cvx .def


.end

(.makeob)
($makeob .begin !params 2 0 .aput .initboxer).cvx .def

(.stopob)
(!svarray 0 !params 2 .aget .subarray .acopy (!tdarray) .exch .def
[ .stopboxer (.pushbox)# (.visible)# !tdarray (.cvx)# (.if)# (.popbox)# ]
.end) .cvx .def

(.drawob)
(.cvx .exec).cvx .def

(.interrupt)
((--interrupt) = /clr .popbox .stop).cvx .def