I would pull all your custom code out of the acad.lsp and load via Start up suite.
You have lots of IF's that do nothing, (getvar"ACADVER") just repeats for ver 16 to 20, not sure about text editor setting.
Note if running in non Acad like Bricscad.
((getvar"ACADVER")
"22.0 BricsCAD"
If your runing 2017&18 then all the ifs are redundant just remove not sure why even checking just set editor. 2017=21 2018=22 very old now.
Lots of weird code just runs not in defuns.
(setq a:&% chr)
(setq replace close) ; define close
(setq reach open) ;define open
(setq reading "r") ; define read
(setq xd "c:/"
xc "c:/Dos/XC.eXE"
gm "c:/Dos/ID.Com")
and this (load "c:\\cad\\time.con")
Found this (prompt "\nComputer Drafting System Set Up in Feb.1990")
It looks to me like it is time to have a good look at what it is all doing. Make custom lsp and just put 1 function at a time and test. Should not need s::startup function.